我的目标是从Eclipse创建一个可执行jar。我有一个Eclipse项目,可以运行下面的结构。
我的Eclipse项目
src/main/java
-com.main
->MyClass
src/main/resources
->MyProps.properties
MyClass
能够成功访问MyProps.properties
文件。
导出Eclipse项目并创建一个可运行的jar后,我的jar结构如下所示。
MyJar.jar
-com.main
->MyClass
-resources
->MyProps.properties
当我运行jar文件时,它无法访问抛出NullPointerExeception
的属性文件。
我的代码
InputStream input = MyClass.class.getClassLoader()
.getResourceAsStream("resources/MyProps.properties");
当我将项目导出为可执行jar文件时,我再也无法访问MyProps.properties
。
有人能帮助我吗?
答案 0 :(得分:0)
您可以使用以下代码读取类路径上的属性文件:
background: #fff url('http://www.htmlcodetutorial.com/document/paper.gif') repeat scroll left top;
答案 1 :(得分:0)
在onder中从jar加载文件。您必须使用Class.getResource()
或Class.getResourceAsStream()
。
URL properties = ConfigLoaderTest.class.getResource("/resources/MyProps.properties");
这将从类路径加载文件,thius意味着它也会查看类路径中的jar(可执行jar自动在您的类路径中)。 第一个' /'表示从类路径上的jar的根目录开始,您在代码中省略了这一点。
您可以像任何URL一样读取该URL(如果没有找到,它将返回null)。立即使用properties.openStream()
。
请注意,您似乎正在使用默认的maven结构src/main/resources
,但是您的eclipse构建路径上有src/main
,因此在您的jar中,您将获得resources
目录。 maven项目的正常情况是在构建路径上有src/main/resources
。这会将您的属性文件放在jar的根目录中。