29

Java プロジェクトにリソースを埋め込み (Eclipse v3.6.0 を使用)、その埋め込みリソースをコントロール内で使用する方法を検索しました (例: JLabel)。ファイル システムからリソースを参照する方法を見てきました。プロジェクトが開発されたら、アプリケーションを実行可能ファイルとして公開したいと考えています。これらの実行可能ファイルは、Windows、*NIX、および Linux プラットフォームに展開/起動されることに注意してください。

Visual Studio の世界でこれを行うことができることは知っていますが、Java/Eclipse IDE でこれを行う方法に非常に慣れていません。副次的な質問として、Eclipse でプロジェクトを実行可能ファイルとして作成して起動できるようにするにはどうすればよいですか?

どんな助けでも大歓迎です。

マーク

更新 1:

BalusC の回答に基づいて、問題を解決するために必要なコードを共有したいと思いました。私のクラスは " " のパッケージのViking.Test下にあり、イメージ ファイルをパッケージ " " の下に置きましたViking.Test.Resources。これはすべて Eclipse 内で行われ、イメージをプロジェクトにインポートします。

  1. インポート元のプロジェクト -> インポート -> 一般/ファイル システムを右クリックして、イメージをインポートしました。
  2. インポートする画像を含むフォルダを選択しました
  3. 「フォルダへ」パラメータProject/src/Viking/Test/Resourcesに「 」が選択されました
  4. どのオプションも変更せず、[完了]をクリックしました

JLabelソース ファイルに次のコードを追加して、画像を( LblLogo)に挿入しました。

try
{
  ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
  InputStream input = classLoader.getResourceAsStream(
    "Viking/Test/Resources/MyImage.jpg");
  Image logo = ImageIO.read(input);
  LblLogo = new JLabel( new ImageIcon( logo ) );
  LblLogo.setBounds(20, 11, 210, 93);
  getContentPane().add(LblLogo);
}
catch ( IOException e ) {  }
4

1 に答える 1

20

これらのリソースをソース/パッケージ構造に配置し、ClassLoader#getResource()orを使用して、完全修飾パッケージ パスによるクラスパスgetResourceAsStream()として、URLまたはクラスパスから取得します。InputStream

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("/image.gif");
// ...

または、現在のクラスと同じパッケージにある場合は、次のようにして取得することもできます。

InputStream input = getClass().getResourceAsStream("image.gif");

副次的な質問として、Eclipse でプロジェクトを実行可能ファイルとして作成して起動できるようにするにはどうすればよいですか。

[Java プロジェクト] > [エクスポート] > [実行可能な JAR ファイル] を右クリックします

于 2010-09-15T20:57:57.227 に答える