由于.properties文件加载,可执行.jar无法启动

时间:2012-06-23 13:41:18

标签: java jar executable-jar properties-file

我遇到运行可执行.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"));

知道造成这种异常的原因吗?

3 个答案:

答案 0 :(得分:5)

如果属性文件位于jar文件中,则无法将其作为文件访问。

您需要让类加载器将资源作为输入流。见Getting the inputstream from a classpath resource (XML file)

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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