Gan*_*row 47 java maven-2 maven
您好我在我的java应用程序中使用src/main/resources中的配置文件.我正在我的班级里读它:
new BufferedReader(new FileReader(new File("src/main/resources/config.txt")));
Run Code Online (Sandbox Code Playgroud)
所以现在我用maven建立这个mvn assembly:assembly
.这是我的pom.xml中的一点:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<finalName>TestSuite</finalName>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.some.package.Test</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
因此,当我运行我的应用程序时,我收到此错误:
src\main\resources\config.txt (The system cannot find the path specified)
Run Code Online (Sandbox Code Playgroud)
但是,当我右键点击我装配好的罐子时,我可以看到里面有人知道我做错了什么?
ben*_*y23 81
资源src/main/resources
将放在类路径的根目录中,因此您需要获取资源:
new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/config.txt")));
Run Code Online (Sandbox Code Playgroud)
您可以通过查看maven生成的JAR/WAR文件进行验证,您可以在config.txt
归档的根目录中找到它.
Pet*_*rey 11
FileReader从文件系统上的文件中读取.
也许您打算使用类似的东西从类路径加载文件
// this will look in src/main/resources before building and myjar.jar! after building.
InputStream is = MyClass.class.getClassloader()
.getResourceAsStream("config.txt");
Run Code Online (Sandbox Code Playgroud)
或者您可以在阅读之前从jar中提取文件.
您在src/main/resources中放入的资源将在构建过程中复制到目标/类,可以使用以下方法访问:
...this.getClass().getResourceAsStream("/config.txt");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
96297 次 |
最近记录: |