2

多くの人は、nautilus から JAR アプリケーションを開始するときに、CWD (現在の作業ディレクトリ) がホーム フォルダー (JAR があるフォルダーではなく) に設定されるという問題を抱えています。これは特に Linux ではなく、Nautilus のバグです。

ターミナルを開いてそこに手動で入力する代わりに、Jarを正しく起動するのを簡単にするトリックを知っている場合は、java -jar myJar.jar以下に投稿してください。

ありがとう


問題の短いコード例:

File f = new File("ASimpleTextFile.txt");
System.out.println(f.getAbsolutePath());

Windows では、これは次のように表示されます。[The Path To The Jar]/ASimpleTextFile.txt
しかし、Linux では、次のように表示されます。/home/[yourName]/ASimpleTextFile.txt

構成ファイルへの相対パスを使用することが多いため、これは非常に悪い考えです。この方法では、ファイルがホームフォルダーを指しているため、それらは見つかりません。

4

1 に答える 1

5

基本的に、現在の作業ディレクトリについては何の保証もありません。

ただし、できることは、特定のクラスのバイトコードが見つかった URL (どこに配置されているかを知っている) について JVM に問い合わせ、それを使用してその「隣」にある他のリソースを見つけることです。

Matlab によって読み込まれた Java クラスの場所の特定を参照してください。

于 2010-11-11T17:41:43.440 に答える