0

Tomcat でサーバー アプリケーションを実行するときに、ディスク上のファイルを開きたいと考えています。クラスパスを印刷すると、

C:\JavaDev\tools\apache-tomcat-6.0.33\bin\bootstrap.jar;
C:\Program Files\Java\jdk1.6.0_23\lib\tools.jar

これは私にはほとんど意味がありませんが、それがどのように機能するかについての基本的な理解さえありません。私のプロジェクトはどこから読み込まれますか? それらはクラスパスにある必要はありませんか?

これは、私が現在取り組んでいるドメインのディレクトリ レイアウトです。

src/main/java/com/company/product/domain/b/beans/MyClass.java
src/main/resources/whatever/myfile.txt

次の行に沿ったバリエーションを使用してファイルを開こうとしました。

String filename = "../resources/whatver/myfile.txt";
URL url = MyClass.class.getResource(filename);

ああurl==null、毎回。私が試した他のパスのバリエーションの中で:

whatver/myfile.txt
../whatver/myfile.txt
../../../../../../../resources/whatver/myfile.txt

コミットできる (つまり、Eclipse ワークスペースに保存されていない) ソリューションが必要なので、すべてのチーム メンバーが設定を更新する必要はありません。

これは私が使用している環境です:

  • トムキャット 6.0
  • Web 開発者向け Eclipse Java EE IDE、バージョン: Helios Service Release 2
  • Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)
4

1 に答える 1

1

Maven プロジェクトでは、ファイルresourcesは通常、クラスパスのどこかにパッケージ化されています。これを試して:

InputStream in = this.getClass().getClassLoader().getResourceAsStream("whatever/myfile.txt");

これは、Maven によって .war としてパッケージ化される Web アプリケーションですか?

于 2012-08-15T13:06:47.270 に答える