質問

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

Martijn

役に立ちましたか?

解決

次のコードで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をダブルクリックする必要がありました。

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top