5

我创建了我的应用程序的 jar 文件,以便用户可以从 Windows 资源管理器运行它。它在自己的工作目录中为某些设置加载一个 JSON 文件(使用路径“.\config.json”)。但是,当我从 Windows 资源管理器中的 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 回答