2012-04-24 4 views
-1

で写真を...私は、NetBeans経由でプログラムを実行すると、それはOKです...は、私が学生のための写真が含まれている学校のJavaデータベース・プログラムを作ったJARファイル

しかしを含めます"double clikable application"(Jar Bundlerを使用)を実行し、アプリケーションを実行する:写真が表示されていない! (アプリケーションファイルのサイズは約700   KBのみです...写真のサイズが2より大きい場合MB)

「ダブルクリップ可能アプリケーション」に写真を含めるにはどうすればよいですかNetBeansを使わずに直接すべての写真を使ってアプリケーションを実行できますか?

imagesディレクトリをプロジェクトのソースルートとして追加しました。

実際、プロジェクトを右クリックして[プロパティ]を選択しました。ダイアログの左側にあるリストで「Sources」を選択しました(これはダイアログの右側のパネルの内容を変更します)。

[フォルダを追加...]ボタンを押し、画像フォルダを選択しました(画像フォルダのエントリが追加されました)。今、JARファイルを作成したとき、そのサイズは約5   MBとなり、700   KBではなくなりました。これはいい。しかし、JARファイルをダブルクリックしてNetBeansの外部でアプリケーションを実行すると、

ケース1:JARファイルを任意の場所(デスクトップなど)に置くと、アプリケーションで写真を表示できない...ケース2:JARファイルをNetBeansプロジェクトと同じディレクトリ。この場合はOKです。

結果として、JARファイルは写真フォルダに依存しています。私は埋め込みすべての写真は、ポータブルになる必要があります。つまり、このファイルを他のコンピュータに持っていれば、写真フォルダなしですべての写真を使ってプログラムを実行できます。最後に:getClass().getResourceAsStream(file)を使用する必要がありますか?そして私はそれをどのように使用するのですか?

答えて

2

ファイルをZIPファイルに挿入し、アプリケーションまたはJARファイル内にパッケージ化することができます。

その後、getClass().getResourceAsStream(file)を使用してファイルへの参照を取得します。 写真を抽出し、アプリケーション内に表示します。

+0

ありがとう、私はプロジェクトのソースルートとして画像ディレクトリを追加しました。 実際には、プロジェクトを右クリックして[プロパティ]を選択し、ダイアログの左側にあるリストで[ソース]を選択しました。これにより、パネルの右側のパネルの内容が変更されます。ダイアログ) i「フォルダの追加...」ボタンを押し、画像フォルダを選択しました...(画像フォルダのエントリが追加されます)。 – ellias

+1

それは問題を解決しましたか?もしそうなら、[受け入れる](http://meta.stackexchange。com/a/65088/155831)あなたがチャンスを取ったときの答え。 –

+0

@elliasはあなたのために働いていますか?あなたは[承諾してください](http://meta.stackexchange.com/questions/16721/how-does-accept-rate-work/65088#65088)ソリューションですか? –

0

NetBeansでは、すべての写真をフォルダの下に置きます(たとえば、fotos)。次にJARファイルを作成します。今度は、実行可能なjarファイルと同じ場所に、fotosフォルダを貼り付けます。 JARファイルを開き、その中のfotosフォルダを削除します。

すると、JARファイルを実行すると、クラスパスは、JARファイルの現在のパスになりますし、あなたがJARファイルの場所にfotosフォルダを持っているようにJavaは、現在のクラスパスにfotosという名前のフォルダを探します。あなたの写真はそこからロードされます。

+0

getClass()。getResourceAsStream(file)をmain()で使用する方法? – ellias

関連する問題