5

ユーザーがWindowsエクスプローラーから実行できるように、アプリケーションのjarファイルを作成しました。一部の設定では、JSONファイルを独自の作業ディレクトリにロードします(パス「。\ config.json」を使用)。ただし、Windowsエクスプローラーのjarファイルから実行すると、構成ファイルが見つかりませんが、コマンドラインから同じjarを実行すると機能します。これは、エクスプローラーが作業ディレクトリをjarのフォルダー以外に設定しているためだと思います。それは何に設定しますか?(そして、どうすればjarの独自のフォルダーを見つけることができますか?)

4

2 に答える 2

3

System.getProperty("user.dir");印刷して、アプリケーションが何を考えているか調べてみませんか?

user.dir    User's current working directory

PARENT以下を使用して、ロード元の場所を取得します.jar。これは、あなたが望むように聞こえます

import java.io.*;

public class Main
{
    public static void main(final String[] args) throws IOException
    {
        final File file = new File(".");
        System.out.println("file = " + file.getAbsoluteFile().getParent());
    }
}

コマンド ラインから実行するか、Windows エクスプローラーからダブルクリックしたときの出力は次のとおりです。

file = c:\Users\Jarrod Roberson\Projects\SwingJarFinder
于 2011-11-18T20:03:49.350 に答える
0

次の複製のように見えます:

実行中の JAR ファイルのパスを取得するには?

jar ファイルがファイル システムにある場合は、ここから開始して現在のパスを取得します。

ClassLoader.getSystemClassLoader().getResource(".").getPath();
于 2011-11-18T20:04:52.287 に答える