4

我在运行可执行 .jar 文件时遇到问题。我创建了一个包含 .properties 文件的项目。当我从 eclipse 启动它时它工作得很好,但是当我将它导出到可执行的 .jar 文件并尝试运行它时:

java -jar myfile.jar

我得到以下异常:

(无法在此处发布图片) http://imageshack.us/photo/my-images/824/29583616.png/

我检查了 .jar 中的清单文件,它包含

Class-Path: .

这是加载的属性文件:

properties = new Properties();
    properties.load(new FileInputStream(
            "src/com/resources/treeView.properties"));

知道是什么导致了这个异常吗?

4

3 回答 3

5

如果属性文件在 jar 文件中,则不能将其作为文件访问。

您需要让类加载器将资源作为输入流获取。请参阅从类路径资源(XML 文件)获取输入流

于 2012-06-23T13:56:53.747 回答
1

在 Eclipse(以及大多数 IDE)中,当前目录是项目的根目录。这意味着这Class-Path: .在 Eclipse 中意味着与从命令行运行它时不同的东西。这就是你写“src/com/...”的原因。删除“src”:

properties.load(new FileInputStream("com/resources/treeView.properties"));
于 2012-06-23T13:54:10.417 回答
0

您的属性文件在 JAR 文件中。所以,使用:ClassLoader.getResourceAsStream()。

于 2014-05-30T06:54:01.443 回答