2

Java プロジェクトを (Eclipse から) jar にエクスポートする際に問題が発生しています。という名前の jar に含めたファイルがありますimages。私のプロジェクトで使用されるすべての画像ファイルが含まれています。問題は、プロジェクトがjar 形式でない場合にのみ、これらのイメージへの参照が機能することです。理由がわからず、画像参照の文言を変更する必要があるかどうか疑問に思っています。これは、画像を参照するために私がやっていることです:

    URL treeURL = null;
    Image tree = null;
    File pathToTheTree = new File("images/tree.png");
    try {
        treeURL = pathToTheTree.toURL();
    } catch (MalformedURLException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    try {
        tree = ImageIO.read(treeURL);
    } catch(IOException e) {
        e.printStackTrace();
    }

私はコーディングの初心者なので、おそらく単純な問題です。すべてが jar に入っているときにこれらの参照が機能するようにするには、何を変更する必要がありますか?

4

1 に答える 1

5

それは確かに簡単です: と でさまざまなgetResource()メソッドを使用java.lang.Classしますjava.lang.ClassLoader。たとえば、アプリでは、次のように書くことができます

treeURL = getClass().getResource("/images/tree.png");

これimagesにより、jar ファイルのルートにあるディレクトリでファイルが検索されます。メソッドの良い点getResource()は、ファイルが jar にあるかどうかに関係なく機能することです。ディレクトリがディスク上の実際のディレクトリである場合、これは引き続き機能します (の親がクラス パスの一部であるimages限り)。images

于 2012-06-04T03:05:19.383 に答える