从 Windows 资源管理器启动的 jar 的默认工作目录是什么?

Ora*_*nge 5 java jar windows-explorer working-directory

我已经为我的应用程序创建了一个 jar 文件,以便用户可以从 Windows 资源管理器中运行它。它在自己的工作目录中加载一个 JSON 文件以进行某些设置(使用路径“.\config.json”)。但是,当我从 Windows 资源管理器的 jar 文件中运行它时,它找不到配置文件,而从命令行运行相同的 jar 可以工作。我假设这是因为资源管理器将工作目录设置为 jar 文件夹以外的其他目录。它把它设置成什么?(我怎样才能找到 jar 自己的文件夹?)

小智 3

为什么不尝试打印出来System.getProperty("user.dir");并了解应用程序的想法呢?

user.dir    User's current working directory
Run Code Online (Sandbox Code Playgroud)

使用以下命令获取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());
    }
}
Run Code Online (Sandbox Code Playgroud)

当我从命令行运行它或从 Windows 资源管理器双击时,输出是:

file = c:\Users\Jarrod Roberson\Projects\SwingJarFinder
Run Code Online (Sandbox Code Playgroud)