0

好的,所以我在 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,但是无法使用上面指定的相对路径来找到它的确切位置,我觉得这很奇怪。

4

3 回答 3

0

你的 jar 文件中不会有 src 目录。只有包名和类文件。

于 2013-04-12T18:52:38.450 回答
0

尝试这个:

URL url = ClassLoader.getSystemResource("/data.txt");
File file = new File(url.toURI());

更多信息在这里

于 2013-04-12T18:57:33.203 回答
0

您可以将文件 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());
}
于 2013-04-12T18:59:16.610 回答