我想访问我的项目“\ src \ main \ resources”的资源形式,但出于任何原因我只能访问目标类。
我认为这个问题由用户@VGR回答。只是为了澄清它在另一个词:
- 你把你的资源在
/src/main/resources
文件夹,这些resouces将保持原样复制到当你建立你的项目/target/classes
文件夹。
例
src/main/resouces/123.txt -> target/classes/123.txt
src/main/resources/myresources/145.txt -> target/classes/myresources/145.txt
...
现在,如果你运行的程序的IDE里面你会看到如下:
System.out.println(Main.class.getResource("/123.txt"));
输出:文件:/ C:/用户/ Raul/workspace/Serial/target/classes/123.txt
System.out.println(Main.class.getResource("/myresources/145.txt"));
输出:file:/ C:/ Users/Raul/workspace/Serial/target/classes/myresources/145。TXT
但,如果你打开生成的文件jar
你不会看到target
文件夹,因为该文件123.txt
将在jar
文件和文件145.txt
根将是该文件夹下myresources/145.txt
。
文件夹目标只是构建工具的输出目录,不会打包到jar文件中。
我们以下问题:
的问题是,我不知道如何将目标类导出到我的罐子,或者我怎样才能得到“的src/main/ressources”的返回值。
要回答这个问题,您必须查看您的项目根目录中的pom.xml
文件。它应该有一个<packaging>jar</packaging>
条目。如果是这样,你创建的JAR文件如下:
方案1:通过命令行
mvn clean install
的jar文件将被创建和复制到文件夹target
。
选项2:在Eclipse(例如)
right click on the pom.xml > Run AS > Maven install
jar文件也应该生成并复制到文件夹target
。
注意:在您的屏幕截图中有两个jar文件:core-0.0.1-SNAPSHOT.jar
和Serial-0.0.1-SNAPSHOT.jar
;在生成jar文件之前,将它们移除(mvn clean或右键单击>运行AS> Maven clean)。原因是Maven只能为每个Maven模块/项目afaik生成一个jar文件。
thx为伟大的帮助球员 –