まず、タイトルがわかりやすくない場合は申し訳ありませんが、そのような短い方法で説明するのは難しいです。Webアプリケーションで使用されているJARファイルの相対パス
プロパティファイルから読み込む必要があるJavaアプリケーション(Web以外)があります。このJavaアプリケーションは、JARファイルとしてエクスポートしてからWebアプリケーションで使用する必要がありますが、プロパティファイルはJARファイルには存在しません。それは次のようになります。myJavaApp.jarとしてエクスポートされますJavaアプリケーションをコーディングするとき、それは相対パスからconfig.propertiesファイルを読んでいましたので、
/webapps/MyWebApp/WEB-INF/myJavaApp.jar
/webapps/MyWebApp/WEB-INF/config.properties
だから、私はそれを行うことができません。絶対パスを入力すると正しく動作します:
properties.load(new FileInputStream("C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/MyWebApp/WEB-INF/config.properties"));
ただし、相対パスを使用しようとすると動作しません。私はここや他のウェブページとは違った解決策を試しましたが、どちらも働いていません。
ほとんど私がプロパティファイルを読んでいるクラスは静的です!
誰かがこれにいくつかの光を当てることができれば、それは大歓迎です。
ありがとうございました。あなたのJavaアプリケーションで
それは働いている!プロパティファイルをWebアプリケーションディレクトリの一番上に置くために '../../../ config/config.properties'を追加しました。ここでの問題は、設定ファイルの変更にTomcatを再起動して適用する必要があることです。(これを避ける方法はありますか?絶対パスを使用したときに設定ファイルを変更できる'ありがとう – Jinka
相対パス '../../../ config/config.properties'を使いたくありません。クラスパス(またはサブディレクトリ)は、このリソースが生きるのに最適な場所です。 –
Tomcatを再起動する必要があるのは、 'antiResourceLocking'を使用している可能性があります。 –