2017-08-02 8 views
0

の.jar実行しながら、 file.propertiesはruntineで変更することができるので、jarファイルを提供するときには、同じディレクトリにsrcフォルダを作成することをお勧めしますレベルのjarファイルを作成し、そのファイルをその内部に配置します。私はjarファイルを作成する前に はしかし、私は、ファイルパスにsrcフォルダをspecificyする必要があります。getResourceAsStream私はEclipseで次のパッケージ構造を有する

prop.load(getClass().getResourceAsStream("src/file.properties")); 

FileReaderのコールがまだ動作している間。

どちらの場合(Eclipse /開発環境とjar /プロダクション環境)でも動作できる共通のファイルパスを設定するにはどうすればよいですか?

あなたは

+1

「FileReader」を使用して「InputStream」を取得する場合は、['FileInputStream'](https://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html)を使用できます。 'getResourceAsStream'を使用する代わりに、ファイルに追加します – bracco23

答えて

2

あなたはJARのマニフェストでClass-Pathエントリに外部srcディレクトリを追加することができますありがとうございました。これによりgetResource()のディレクトリにsrcディレクトリがアクセスできるようになります。

ただし、実行時にそのディレクトリの内容を変更したときにどのように動作するかはわかりませんが、試したことはありません。

FYI:Eclipseでファイルを読む は、事故によって少し "作品"。アプリケーションを実行すると、EclipseはJAR全体を構築して使用していません。 Javaファイルを.classファイルにコンパイルして使用するだけです。全体のアプリケーションは、まだJARファイルのplainディレクトリとファイルとしてファイルシステム上にあります。そのため、ファイルからの読み込みが機能します。

JAR(zip)アーカイブから直接ファイルを読み取ることができないため、JARファイル(およびその中のリソース)の場合は機能しません。展開された形式でアプリケーションを配布するなら、それはクライアントのために働くだけでなく、Eclipseで(そして追加のディレクトリなしで)あなたのために働くでしょう。

関連する問題