私はSwingを使用して小さなJavaアプリケーションを開発しています。これは、Windows/LinuxおよびMacOSで実行されることになっています。
最終的には、同じフォルダーにいくつかの構成ファイルが含まれる実行可能なjarとして出荷されます。それらをロードするには、jarがプログラム内に保存されているフォルダーへのパスが必要です。これまたはこれ
のようなスレッドがすでにいくつかあります。
私の問題は、Eclipse内からプログラムを実行するか、次のようなターミナルから実行可能なjarを呼び出すと、そこで説明されているすべてのソリューションが正常に機能することです。
java -jar /path/to/jar/jarfile.jar
ただし、CinnamonまたはGnomeのjarファイル(ほとんどのユーザーが知っていることです)をクリックすると、正しいパスが取得されません。(MacOSユーザーは同じ問題を報告します)
これが私がこれまでに試したことであり、ダブルクリックで実行した場合の出力は次のとおりです(Eclipseまたはターミナルから実行した場合、これらはすべて目的のパスを表示します)。
ClassLoader.getSystemClassLoader().getResource(".").getPath()
Output: file:/usr/lib/jvm/java-6-openjdk-common/jre/lib/ext/pulse-java.jar!/
SomeClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();
Output: ./
System.getProperty("user.dir");
Output: /home/myusername
それを行う他の方法はありますか、それともjarをエクスポートするときに何か間違ったことをしていますか?どんな助けでもいただければ幸いです!
乾杯ニック