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