Zak*_*kum 2 java eclipse maven
我有一个Java项目,并使用标准的maven原型来创建dir结构.它看起来像这样:
|-src/main/java
|-src/main/resources
|-target/classes
|- ...
Run Code Online (Sandbox Code Playgroud)
现在,我的一个类使用.properties文件来读取某些设置.我将它放在src/main/resources中并通读File propertiesFile = new File("./src/main/resources/starter.properties");.
当我使用eclipse运行配置时,一切正常.但是最近我尝试从我的控制台启动相同的Java类java some.package.Class,并且由于.class文件位于目标/类中,我得到了消息,即./src/main/resources/starter.properties不能找到.
我究竟做错了什么?.properties文件不应该位于resources-folder中,还是我必须使用其他方式加载它?
前两个答案是正确的,但我想提供更多的背景.
这个文件分两个地方.它从/ src/main/resources开始,当你构建项目时,Maven将它复制到/ target/classes.
在运行时,您不应该访问源代码中的副本.否则,您的软件需要访问源代码才能运行.相反,您应该访问交付物中的副本.在执行时,您可以安全地假设您将在类路径中找到它.它与编译的类位于同一个位置,因此如果它不在类路径中,那么您将无法首先运行该程序.这就是你应该使用getResourceAsStream()其他回答者提到的原因.
(虽然对于生产软件,我建议使用Spring的Resource抽象来访问这些东西.)
| 归档时间: |
|
| 查看次数: |
2538 次 |
| 最近记录: |