ClassLoader.getResourceAsStream无法在JAR文件中查找资源

时间:2016-03-04 19:37:01

标签: java eclipse jar

我在Eclipse中有一个Java项目,其中包含几个带有main方法的类,以及一个带有属性的资源文件夹。包含' config / config.properties'的资源文件夹位于构建路径中(右键单击Eclipse中项目资源管理器中的资源文件夹 - >构建路径 - >添加到构建路径)。我可以使用Eclipse中的main方法运行类,并且正确加载资源。我正在使用main方法从其中一个类生成一个可运行的JAR文件(右键单击Package Explorer中的Java类文件 - > Export-> Java / Runnable JAR文件)。当我执行JAR文件时(' java -jar myApp.jar')ClassLoader.getResourceAsStream(" config / config.properties")返回null。我试过预先填写几个' ../'到属性文件路径,但(1)这不起作用,(2)它打破了在Eclipse中运行的执行。应用程序在命令行上不使用任何参数。任何想法是什么问题?

2 个答案:

答案 0 :(得分:2)

你的jar中有META-INF/MANIFEST.MF个文件吗?

将以下行添加到文件中:

Class-Path: .

之后不要忘记空行。 I had a similar problem a couple of years ago.

More info on the manifest.mf file

答案 1 :(得分:1)

尝试使用Jar Export Wizard导出jar。您可以通过右键单击 - >打开它。 "出口" - > " Jar文件" (而不是" Runnable JAR文件")。

这将允许您单独选择要包含的每个文件。