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