Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在类路径上添加属性文件_Java_Spring_Classpath - Fatal编程技术网

Java 在类路径上添加属性文件

Java 在类路径上添加属性文件,java,spring,classpath,Java,Spring,Classpath,我正在构建一个基于Spring引导的Spring独立应用程序。我想让这个应用程序从一个属性文件中读取它的属性,这个属性文件位于一个单独目录中的jar文件之外。构建的应用程序的结构如下所示 testApplication ├── test-1.0-SNAPSHOT.jar ├── lib │ └── <dependencies are here> └── conf └── application.properties 我得到以下解释: Exception in threa

我正在构建一个基于Spring引导的Spring独立应用程序。我想让这个应用程序从一个属性文件中读取它的属性,这个属性文件位于一个单独目录中的jar文件之外。构建的应用程序的结构如下所示

testApplication
├── test-1.0-SNAPSHOT.jar
├── lib
│   └── <dependencies are here>
└── conf
    └── application.properties
我得到以下解释:

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.myapp.Test]; nested exception is java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist
    at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:180)
...
Caused by: java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist       
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
我尝试通过此类注释从应用程序读取文件:

@PropertySource("classpath:application.properties")
Java文档没有提到可以在类路径上加载非jar文件,但是如果这个application.properties在jar文件test-1.0-SNAPSHOT.jar中,那么可以通过这种方式访问它

是否可以将外部非jar文件放在类路径上?我知道我不一定要把文件放在类路径上,我可以通过不同的方式访问它,但我仍然好奇这是否可能。

试试看

java -cp "./*;lib/*;conf" com.myapp.Test

Asterix(*)用于查找所有JAR而不是类。

对不起,请删除“conf/”

java-cp;lib;conf“com.myapp.test”之后的Asterik(*);是的,额外的Asterix是原因。我不知道,*是jar文件,没有*是非jar文件如果不是.jar文件,路径必须是一个目录,并将添加该目录中的所有文件。这就是为什么
conf/
末尾没有通配符的原因。
java -cp "./*;lib/*;conf" com.myapp.Test