[英]How to adjust relative & absolute paths when exporting eclipse java project to executable jar?
好的,所以我在Eclipse中有一个名为SWT的项目。 在该项目的一个类中,有一个代码:
public static String rpath = "..\\SWT\\src\\data.txt";
public static String path = new File(rpath).getAbsolutePath();
如果我在eclipse中编译并运行项目,则我的程序能够找到data.txt并将其用作输入,这是文件的预期目的。
然后,我将此项目导出到可执行的jar文件,打开命令提示符,然后输入java -jar SWT.jar。 程序打开,但是在命令提示符下,出现以下错误:
java.io.FileNotFoundException: C:\\Users\\Yoshikawa\\workspace\\SWT\\..\\data.txt (The system cannot find the file specified)
我的问题:
在将代码导出到可执行jar之前,该如何修改代码,以便使可执行jar能够找到data.txt? 顺便说一句,我的可执行jar已经包含data.txt,但是无法使用上面指定的相对路径来找到其确切位置,我觉得这很奇怪。
您的jar文件中将没有src目录。 仅软件包名称和类文件。
尝试这个:
URL url = ClassLoader.getSystemResource("/data.txt");
File file = new File(url.toURI());
更多信息在这里 。
您可以将文件data.txt放在某个包中,然后使用该包中的类来执行此操作:
URL url = ClassFromSamePackageOfFile.class.getResource( "data.txt" );
File f;
try {
f = new File(url.toURI());
} catch(URISyntaxException e) {
f = new File(url.getPath());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.