我使用maven从多个项目中创建一个可运行的jar:
项目A(包含Main类):
/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,主要类别:主要 [ClassPath] => UserEntry:项目A,项目B
注意:如果我更改UserEntry的顺序,我可以访问b.txt但不能访问a.txt。
你能帮帮我吗?
答案 0 :(得分:0)
项目B需要添加到项目A的Java Build Path
。打开项目A的属性对话框,然后执行此操作。
答案 1 :(得分:0)
我找到了解决方案。我在项目B(B / src / main / resources-a)中创建了一个链接资源文件夹,它引用了项目A的资源目录(A / src / main / resources)。我将新的链接文件夹设置为源目录。现在它可以工作了,我可以在Project B的target / classes文件夹中看到项目A中包含的资源。这正是我的预期,但如果我想'mvn eclipse:eclipse'自动配置.project和.classpath文件?