Spring PropertyPlaceholderConfigurer
beanとそれに関連するクラスパスに関連する質問を見てきましたが、これまでのところ私の問題を解決できませんでした。私はmyApp
という古いプログラムにいくつかの変更を加えています。これはJarとして動作し、myApp.properties' file, which lives in a directory called 'config' within my application directory. In the
という外部プロパティファイルを持っています。 'myApp'のapplicationContext.xmlファイルです。この外部プロパティファイルを読み込むようにBeanが定義されています。Spring PropertyPlaceholderConfigurer beanのクラスパスを設定する
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:myApp.properties</value>
</list>
</property>
このアプリケーションでは、内蔵されたときだけで正常に動作し、私のビルドと実行のためのすべてのJARの依存関係と一緒にconfig
フォルダが含まれているため、Netbeansの内で実行されます。私はjava -jar myApp.jar
を使用して、コマンドラインからそれを実行しようとする。しかし、私は次のエラーを取得する:
08/01/2016 15:37:18.562 | ERROR | Unable to start the application. | org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [myApp.properties] cannot be opened because it does not exist
私は春がどこのプロパティファイルを見つけるために知っているが、私ように私が正しくクラスパスを指定する必要があることをもらいます「
「config」の後の「*」は何を指定しますか?私はそれがワイルドカードのキャラクターだと思いますか? –
実際には、-classpathオプションと-jarオプションの両方を使用すると、指定されたクラスパスがJARに含まれるmanifest.mfファイル内のものを優先して無視されるため、うまくいきません。だから私がしなければならなかったのは、-classpathを使ってJARの代わりに明示的にメインクラスを指定することでした。 –
また、私は今週の私の研究で、 '*'はJARファイル(と多分クラスファイルあまりにも、IIRC)、それを使用すると、プログラムは私のプロパティファイルをとにかく配置できませんでした... –