0

Java プログラムで JAR ファイルを作成しました。このコードは、JAR ファイルと同じディレクトリにある "Test" ディレクトリ内のいくつかのファイルを開きます。このような:

/
 -- program.jar
 -- /Test
     -- *

java -jar program.jar を使用してターミナル経由で実行すると、完全に実行されます。しかし、グラフィカルに実行すると (jar ファイルを右クリックして OpenJDK で開く...)、正しく動作しません。別のディレクトリから実行したかのように。

JAR ファイルをグラフィカルに実行すると、別のディレクトリから実行されている可能性はありますか?

ちなみにUbuntuでやってます。

4

2 に答える 2

2

はい、別の現在の作業ディレクトリを取得します... 2 つの解決策があります。

1)次のハックを実行して cwd を見つけます。

    public class Test {
        public static void main(String... args) { 

            ClassLoader cl = Test.class.getClassLoader();
            String f = cl.getResource("").getFile();

            File cwd = new File(f);

            if (cwd.toString().endsWith("!"))
                cwd = cwd.getParentFile();

            JOptionPane.showMessageDialog(null, cwd);
        }
    }

2)下のファイルTestが静的である(頻繁に変更されない)場合、解決策はそれらをjar内にパッケージ化することです。

于 2010-11-20T22:48:35.643 に答える
0

これが役立つかどうかはわかりませんが、以下は同様の JAR 質問へのリンクです。

ソースファイルを別のディレクトリに置いてjarファイルを実行する

于 2010-11-20T22:38:18.057 に答える