2017-02-14 7 views
0

質問:
私は.jarファイルと2つのフォルダにアセットが含まれています。私はそれらをすべて単一の.exeファイルにパッケージングしてもらいたいです。私はすでにLaunch4jを試しましたが、これは.exeへのアセットの追加を許可していません。パッケージ.JARと資産を1つの.EXEに動的にロード

質問2:
私は、 "資産/オーディオ/" + ASSETNAMEを使用して私のプログラムでファイルパスを定義します。あなたの方法に従うことでこれを変更する必要がありますか?あなたがこれに対する答えを知らないならば、それに答えないでください。

この質問は他の言語のhereおよびhereで尋ねられていますが、これらの質問に対する回答は役に立ちません。何かが助けになり、事前に感謝します。

+0

アセットでは、リソースを意味するのは正しいですか?それらを瓶に直接束ねるのはどうですか?その後、それらにアクセスすることは少し異なります。あなたは 'MyClass.class.getResource()'または 'MyClass.class.getResourceAsStream()'を呼び出さなければなりません。 – Mordechai

+0

@MouseEvent私はちょうど私のプロジェクトを行ってあなたの提案に従っています、私のバンドルは[this](https://gyazo.com/1d2a6055946d7327a50fd77bf47689d4)のように見え、[this](https://gyazo.com)/b20f4e3f6317f1866188fa631a108346)。 Eclipseから実行するとうまく動作しますが、実行可能な.JARとしてエクスポートされるとうまくいきます。プログラムがリソースを参照することができないようですが、これで私を助けることができますか?さらに詳しい情報が必要な場合は、私は – Peake

答えて

1

あなたのジャーの中にアセットを入れることができます。

あなたが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を入手できます。

+1

を提供してうれしいです。これは一日中受けた最高のニュースです、ありがとうございました! – Peake

+0

私はちょうど私のプロジェクトを行ってあなたの提案に従った、私のバンドルはこのように見え、私はこのようなリソースを呼び出す。 Eclipseから実行するとうまく動作しますが、実行可能な.JARとしてエクスポートされるとうまくいきます。プログラムがリソースを参照することができないようですが、これで私を助けることができますか?より多くの情報が必要な場合は、私は喜んで提供する – Peake

関連する問題