2

Linux では、JVM は作業ディレクトリをユーザーのホームフォルダーと同じに設定します。Windows では、これは jar が配置されているフォルダーです。作業ディレクトリを変更するために、(私のアプリから) jar がどこにあるかを見つけるにはどうすればよいですか?

マルティン

4

2 に答える 2

5

次のコードでjarへのパスを取得してみてください。

String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();

次に、「*。jar」の部分を次のように削除できます。

path=path.substring(0, path.lastIndexOf('/')+1);

jarと同じディレクトリにあるファイルを開く必要があるときに、Javaゲームで同じ問題が発生しました。

Linuxでjarをダブルクリックしても、ファイルは開きませんでした。もちろん、コマンドラインを開いてdirをjar dirに変更し、そこからjarを実行することもできますが、jarをダブルクリックする必要がありました。

于 2009-09-09T14:49:43.870 に答える
0

どちらの場合も、実際のディレクトリです。Windowsでは、エクスプローラーから実行すると、実際のディレクトリがjarのベースディレクトリに自動的に設定されます。Linux では、ホーム ディレクトリが GUI の実際のディレクトリです。ディレクトリを設定するには、短いシェル スクリプトを記述します。このスクリプトは、実際のディレクトリを設定し (cd コマンドを使用)、jar を実行します (javaw -jar xyz.jar を使用)。

于 2009-09-09T14:39:27.713 に答える