Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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 为Spring PropertyPlaceholderConfigurer bean设置类路径_Java_Spring_Netbeans_Properties_Classpath - Fatal编程技术网

Java 为Spring PropertyPlaceholderConfigurer bean设置类路径

Java 为Spring PropertyPlaceholderConfigurer bean设置类路径,java,spring,netbeans,properties,classpath,Java,Spring,Netbeans,Properties,Classpath,我一直在研究与SpringPropertyPlaceHolderConfigurerBeans和相关类路径相关的问题,但到目前为止还无法解决我的问题。我正在对一个名为myApp的旧程序进行一些更改,它作为一个Jar运行,有一个名为myApp.properties的外部属性文件,它位于我的应用程序目录中一个名为“config”的目录中。在'myApp'的applicationContext.xml'文件中,我定义了一个bean,在这个外部属性文件中读取: <bean id="property

我一直在研究与SpringPropertyPlaceHolderConfigurerBeans和相关类路径相关的问题,但到目前为止还无法解决我的问题。我正在对一个名为myApp的旧程序进行一些更改,它作为一个Jar运行,有一个名为myApp.properties的外部属性文件,它位于我的应用程序目录中一个名为“config”的目录中。在'myApp'的applicationContext.xml'文件中,我定义了一个bean,在这个外部属性文件中读取:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
  <list>
    <value>classpath:myApp.properties</value>
  </list>
</property>
我知道我需要正确地指定类路径,以便Spring知道在哪里可以找到属性文件,但我不确定具体怎么做,因此任何指针都会受到欢迎…

试试看


java-classpath\config*-jar myApp.jar

最终对我有用的是:

java -cp "myApp.jar;lib/*;config"  com.myCompany.myApp.Main
是的,具有main方法的类也称为main。不,我没有写这个程序:


My classpath指定包含主类的JAR、包含运行此应用程序所需的所有其他JAR的目录库(使用“*”字符避免写入该目录中每个JAR的名称),以及包含各种配置文件的“config”目录。我还发现,我可以在property configurer定义中指定myApp.properties,而无需任何限定符,这样我就可以将该文件保存在与“myApp.jar”相同的目录中,而不会出现问题。

配置后的“*”指定了什么?我假设它是通配符?实际上,同时使用-classpath和-jar选项是行不通的,因为指定的类路径会被忽略,取而代之的是jar中包含的manifest.mf文件中的任何内容。所以我要做的就是使用-classpath并显式地指定主类,而不仅仅是JAR。另外,我在今天下午的So研究中了解到,“*”是专门用于JAR文件,也可能是类文件,IIRC,所以使用它不会使程序能够定位我的属性文件。。。
java -cp "myApp.jar;lib/*;config"  com.myCompany.myApp.Main