为了方便,想将一个程序的类文件和设置文件、结果文件打入一个jar包,可实际运行时发现jar文件不能访问jar包中的文件。
文件结构
./test //包
./set //设置文件
jar -cvfm **.jar manifest.mf ./test ./set
然后通过相对路径用BufferedReader读取设置文件。实际运行时发现,jar文件只会去找与其同级的set文件夹,而不会去找jar内部的set文件夹。
求教该如何设置,而且为什么jar文件能够读取内部的包和META-INF文件夹,但不能读取内部的set文件夹?
文件结构
./test //包
./set //设置文件
jar -cvfm **.jar manifest.mf ./test ./set
然后通过相对路径用BufferedReader读取设置文件。实际运行时发现,jar文件只会去找与其同级的set文件夹,而不会去找jar内部的set文件夹。
求教该如何设置,而且为什么jar文件能够读取内部的包和META-INF文件夹,但不能读取内部的set文件夹?
解决方案 »
- ehcache分布式缓存问题!求高手赐教~。。。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 如果一个方法的参数是一个接口,能这么写吗?
- 求助 ~AIP43496203AIP34572095AIP73135430
- 请教-classpath问题?
- 大哥们,我安装了Jbulider9 ,怎么没发登陆集成环境啊??
- 请教一个画图的简单问题!!(没分了,下次给!!拜托)
- ServletRequest问题?在线
- 来问个菜菜菜菜题,关于我的第一个java程序。。。
- java831(希望) sikuan(葫芦)qxjavajavak k_wyx(桃花岛) xmvigour 近来领分!
- 学习JAVA反射遇到的一个错误
- 用MousAdapter处理鼠标事件!!!!!!!
- java swing 图片翻转的问题
./set 存放设置文件
./manifest.mf内容:
Main-Class: wd/MainFrame
Manifest-Version: 1.0运行命令 jar -cvfm Test.jar manifest.mf ./work ./set
要读取./set/1.set文件并打印行数。
编译后发现在当前位置运行Test.jar能正常读取,但Test.jar移动其他目录中时不能正常读取,即jar读取的不是文件内部的set/1.set,简单代码如下:package work;import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.util.ArrayList;
import java.util.HashSet;public class Test
{
public static final File root = new File("./set");
public static final File wordFile = new File(root, "1.set");
private static String[] word = load(wordFile);
public static String[] load(File aim)
{
ArrayList<String> result = new ArrayList<String>();
String temp;
BufferedReader br = null;
try
{
br = new BufferedReader(new FileReader(aim));
while((temp = br.readLine()) != null)
{
result.add(temp);
}
br.close();
String[] sArray = new String[result.size()];
sArray = result.toArray(sArray);
//System.out.println(sArray.length);
return sArray;
}
catch(Exception ex)
{
ex.printStackTrace();
return new String[0];
}
}
}
Main-Class: work/Test
Manifest-Version: 1.0