我创建了我的应用程序的 jar 文件,以便用户可以从 Windows 资源管理器运行它。它在自己的工作目录中为某些设置加载一个 JSON 文件(使用路径“.\config.json”)。但是,当我从 Windows 资源管理器中的 jar 文件运行它时,它找不到配置文件,而从命令行运行相同的 jar 是有效的。我假设这是因为资源管理器将工作目录设置为 jar 文件夹以外的内容。它设置成什么?(我怎样才能找到罐子自己的文件夹?)
问问题
9167 次
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 文件在您的文件系统中,请从此处开始获取当前路径:
ClassLoader.getSystemClassLoader().getResource(".").getPath();
于 2011-11-18T20:04:52.287 回答