我使用maven从多个项目创建一个可运行的jar:
项目A(包含主类):/src/main/resources/META-INF/resources/a.txt
项目B(取决于项目A):/src/main/resources/META-INF/resources/b.txt
Runnable.jar(用mvn创建):/src/main/resources/META-INF/resources/a.txt
,/src/main/resources/META-INF/resources/b.txt
在Main类中,我使用Class.class.getResource
来获取a.txt和b.txt的内容。当我做java -jar Runnable.jar
时,我可以访问a.txt和b.txt。但是如果我从Eclipse运行它,我只能访问a.txt。有可能做到对吗?我想在应用程序运行时更改资源内容,并在不重新编译的情况下获得结果。
运行配置:[MAIN] =>项目:项目B,主类:Main [ClassPath] => UserEntry:项目A,项目B
注意:如果我更改UserEntry的顺序,我可以访问b.txt但不能访问a.txt。
你可以帮帮我吗?
项目B需要添加到项目A的Java Build Path
。打开项目A的“属性”对话框,然后执行此操作。
我找到了解决方案。我在项目B(B / src / main / resources-a)中创建了一个链接资源文件夹,它引用了项目A的资源目录(A / src / main / resources)。我将新的链接文件夹设置为源目录。现在它可以工作了,我可以在Project B的target / classes文件夹中看到项目A中包含的资源。这正是我的预期,但如果我想'mvn eclipse:eclipse'自动配置.project和.classpath文件?