1

そこで、Eclipse ビュー プラグイン用にいくつかの画像を作成します。完璧に動作します。翌日目を覚ますと、プログラムはそれらのファイルを見つけることができなくなったことを教えてくれます。ファイルは間違いなく私が残した同じ場所にあり、24 時間コードに触れていません。私はこれを1時間いじっていますが、昨日のプログラムは問題がなかったので、どこからデバッグを開始したのかさえわかりません。

Sample.gif は、プラグインの「icons」フォルダーにあります。src フォルダーに移動しようとしましたが、それも機能しません。

エラーメッセージ:

org.eclipse.swt.SWTException: i/o error (java.io.FileNotFoundException: sample.gif (No such file or directory))

コード (この行と、testImage を使用するすべてのコード行を削除すると、プラグインが再び実行されます):

Image testImage = new Image(null, "sample.gif");

何がこれを引き起こしている可能性があるのか​​ 、またはデバッグ方法について誰かに指示を与えるために私が提供できる情報はありますか?

4

1 に答える 1

1

問題は、現在のディレクトリがどこにあるかに関係している可能性が最も高いです。「sample.gif」のようなパス名を使用すると、ファイルを開くときの通常の動作は、現在のディレクトリを参照することです。別の現在のディレクトリでアプリケーションを実行すると、アプリケーションは別の場所でファイルを探します。


ただし、現在のディレクトリの概念に混乱しています

以下は、コンセプトを説明するいくつかのページです。

写真はどこに行けばいいですか?

アプリケーションを Eclipse 内からのみ実行する場合は、アプリケーションをどこにでも配置できます。また、アプリケーションの Eclipse ランチャー構成が現在のディレクトリを一貫した場所に設定していることを確認してください。(現在の問題は、アプリケーション ランチャーが親 Eclipse の現在のディレクトリを使用していることが原因である可能性が最も高く、それは Eclipse を起動したときの場所によって異なる場合があります。上記のリンク先のページを参照してください。)

ビルドしたアプリケーションを何らかの形でエクスポートして、ユーザーが Eclipse の外部で使用できるようにする場合、答えはアプリケーションの性質と、ユーザーのコンピューターにインストールする方法によって異なります。(考えられる解決策は、画像をアプリケーションの JAR ファイルに入れ、ClassLoader.getResource メソッドを使用してクラスパス経由でそれらを見つけることです。)

于 2012-08-05T07:38:05.340 に答える