2017-03-28 14 views
1

ジャスト:Jarの構築 - リソースファイルのインクルード方法この質問に私の立場を明確にするのIntelliJ 2017

  • ため、私はそれらなしで絶対パスを使用しています、私のテストは失敗します。
  • 私は相対パスの使い方を理解できていないと思います。
  • 最終的には、ファイルパスの依存関係がなくても動作するjarが必要です。

検索中です。私は、フォルダ形式持っ

に...私のために働いた解決策が見つかりません:

String currentTheory = "src/main/resources/Prolog_Files/kb.pl"; 

そして、それをロードします。私のコードで

src/main/java/packages/javafiles.java (there are several) 
src/main/resources/Prolog_Files/fileIWantToLoad.pl 

を、私は絶対パスを述べるために持っています

Theory theory = new Theory(new FileInputStream(currentTheory)); 

JavaFXアプリケーションを実行してテストを実行すると、完全に機能します。

私は瓶をビルドするときしかし、私はエラーを取得:

Caused by: java.io.FileNotFoundException: src\main\resources\Prolog_Files\kb.pl (The system cannot find the path specified) 

私はこの仕事を作る方法を探しての多くを行ってきました。私が試した、と使用できませんでしたしました:

File currFile = new File(getClass().getClassLoader().getResource("/src/main/resources/Prolog_Files/kb.pl").getFile()); 

InputStream stream = getClass().getResourceAsStream("main/resources/Prolog_Files/kb.pl"); 

と同様に、IntelliJの内部リソースとしてフォルダが含まれるようにしようと周りにフォルダを移動し、.plというを参照しようとしていますパス情報のないファイル。

この4時間後に私の髪を引き裂く - 助けてください!

編集:追加するだけで、私はMaven、ANTなどを使用していません。私は単にIntelliJが提供するものを使用しています。

ありがとうございます!

+0

こんにちは、私も絶対パスなしで試しました - 私は、瓶が/ rootとして/ srcを取ることはかなり確信していますが、 "resources/Prolog_Files/kb.pl" 。 –

答えて

0

IntelliJにリソースディレクトリを含める必要があることを伝える必要があります。

  1. あなたが外部リソース を追加したいリソースフォルダをCreate Resource Folder

  2. がリソースフォルダとのthats、それを確認します作成します。 enter image description here

PS:私はまだあなたが絶対パスを使用しないことをお勧め、私はあなたが相対パスで既存のものを置き換えることができますなら、私に教えてください。

+0

あなたの応答をありがとう - 実際には、私はすでにリソースのルートとしてそれを設定しようとしたが、私は私の試みの1つとしてそれをしていたはずです。私は、絶対的なパスではなく相対的な結果をアーティファクトに使用するようにしたいので、どうすれば適切に行うことができるか教えてください。 –

関連する問題