あなたのジャーの中にアセットを入れることができます。
あなたがTest.txtをという名前のファイルを持っていて、コンソールに ファイルの内容を印刷したい
たとえば、「Test.txtの」ファイルが同じレベルで資産というパッケージの中に置かれていますあなたは通常、Fileオブジェクトを使用して外部ファイルと同じように
package net.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Test {
public static void main(String[]args) {
BufferedReader br = null;
try {
InputStream is = Test.class.getResourceAsStream("/assets/Test.txt");
if(is != null) {
br = new BufferedReader(new InputStreamReader(is));
//Print the content of Test.txt
String line;
while((line = br.readLine()) != null) {
System.out.println(line);
}
} else {
//Resource not found
System.out.println("Resource unavailable!");
}
} catch (IOException e) {
e.printStackTrace(); //Log IO Error
} finally {
if(br != null) {
try {
br.close();
} catch (IOException e) {}
}
}
}
}
The project structure will look like thisルートパッケージのあなたはの.jarリソースにアクセスすることはできません。
アセットがjarファイルにある場合は、Launch4j(または代替)を使用して .exeを入手できます。
アセットでは、リソースを意味するのは正しいですか?それらを瓶に直接束ねるのはどうですか?その後、それらにアクセスすることは少し異なります。あなたは 'MyClass.class.getResource()'または 'MyClass.class.getResourceAsStream()'を呼び出さなければなりません。 – Mordechai
@MouseEvent私はちょうど私のプロジェクトを行ってあなたの提案に従っています、私のバンドルは[this](https://gyazo.com/1d2a6055946d7327a50fd77bf47689d4)のように見え、[this](https://gyazo.com)/b20f4e3f6317f1866188fa631a108346)。 Eclipseから実行するとうまく動作しますが、実行可能な.JARとしてエクスポートされるとうまくいきます。プログラムがリソースを参照することができないようですが、これで私を助けることができますか?さらに詳しい情報が必要な場合は、私は – Peake