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

时间:2011-11-18 20:01:06

标签: java jar windows-explorer working-directory

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

2 个答案:

答案 0 :(得分:1)

为什么不尝试打印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

答案 1 :(得分:0)

看起来像是重复:

How to get the path of a running JAR file?

如果您的jar文件在您的文件系统中,请从此处开始获取当前路径:

ClassLoader.getSystemClassLoader().getResource(".").getPath();