0

プロパティファイルからデータを読み取る以下のようなJavaクラスがあります。

Javaクラスとプロパティファイルは両方とも同じディレクトリです

FileInputStream fis = new FileInputStream("MyProp.properties");

その後、正常にコンパイルされ、war ファイルが作成されます。このwarファイルはサーバーにデプロイされ、Windowsで適切に実行されます

Linuxの別のサーバーに展開した同じwarファイルは、次のように例外を与えています

FileNotFoundException
4

1 に答える 1

0

ファイルが戦争外にある場合は、相対パスではなく完全修飾パスを使用することをお勧めします。Windows と Unix-y の両方の環境で実行する必要がある場合は、まず次のようにオペレーティング システムを検出します。

System.getProperty("os.name");

次に、それに応じてパスを設定します。

ただし、ファイルが戦争中の場合は、次のようにクラスパスから読み取るだけです。

getClass().getClassLoader().getResourceAsStream("MyProp.properties")

また:

getClass().getResourceAsStream("/MyProp.properties");

詳細については、これを参照してください: How to really read text file from classpath in Java

于 2013-09-26T04:28:58.823 に答える