请问一下
比如说我现在有一个应用程序,打包在test文件夹中
该文件夹中还有一个ss.dat文件,我的程序需要读取该文件
我也需要把该程序打包成.jar文件(整个test文件夹都要打包,包括ss.dat)
那么关于表示ss.dat这个文件的File对象应该怎么表示
----------------解决方案--------------------------------------------------------
File f = new File(ss.dat);
----------------解决方案--------------------------------------------------------
可是该文件被打包以后好像就不行了
而且如果真要用也应该是File f = new File("ss.dat");呀
----------------解决方案--------------------------------------------------------
File f = new File("ss.dat");
不好意思...太不认真了 检讨
ss.dat文件要放在一个与你打包的JAR文件同名的文件夹中,
而且这个文件夹中只有这一个ss.dat文件
CLASS文件要放到这个文件夹的外面
你再试试
----------------解决方案--------------------------------------------------------
可是我是想把.class文件和ss.dat文件一起打包呀
----------------解决方案--------------------------------------------------------
是啊 只是包内也要有文件夹的嘛
----------------解决方案--------------------------------------------------------
比如说有这样的一个java文件
package test;
import java.io.*;
public class UseFile {
/**
* @param args
*/
public static void main(String[] args) {
File file ;
FileInputStream input ;
file = new File("ss.dat");
try {
input = new FileInputStream(file);
byte ss[] = new byte[10];
input.read(ss);
System.out.println(new String(ss));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
和它在同一个目录里面还有一个ss.dat文件
你的意思是:
然后编译以后
我再输入命令:
jar cvfm ss.jar manifest.mf test ss.dat
就OK了?
然后将这个ss.jar文件移到其他的地方也都可以有相同的效果了
是不是?
----------------解决方案--------------------------------------------------------
jar cvfm ss.jar manifest.mf .
就可以了
----------------解决方案--------------------------------------------------------
其实IDE就可以帮你打包
----------------解决方案--------------------------------------------------------
可是我这样做了以后
在当前目录下没有问题
但是我把这个.jar 文件移到其他的地方
运行的时候它会提示找不到ss.dat文件呀
如果是对于图片
我曾经看过千里冰封是这样做的:
ImageIcon image = new ImageIcon(this.getClass().getResource("image.jpeg"));
但是对于文件我就不知道怎么做了
----------------解决方案--------------------------------------------------------