我遇到运行可执行.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"));
知道造成这种异常的原因吗?
答案 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()。