从Java运行jar文件而没有绝对路径

时间:2016-03-24 15:52:02

标签: java directory executable-jar

我有一个用Netbeans创建的Calculator.jar文件。

我想使用java代码运行该jar文件。在查看了stackoverflow和一些文档站点之后,我尝试了以下内容:

public static void main (String [] args){
    Runtime rt = Runtime.getRuntime();
    Process pr = rt.exec("java -jar C:\\pathToJar\\Calculator.jar);
    pr.waitFor();
}

代码运行正常,但我的问题是文件的路径。如果我在没有绝对路径的情况下运行程序,它会运行并完成,但我从未看到计算器GUI弹出。当我使用绝对路径运行时,GUI会按预期弹出。

我的jar文件和我的源代码在同一个地方。我认为这样做可以让我只需要放置没有绝对路径的Calculator.jar。但这似乎不起作用。

有谁知道我怎么可能存储jar文件所以我不需要使用绝对路径?

编辑: 我还尝试在项目中创建一个名为jarFiles的独立包,并尝试使用路径jarFiles\Calculator.jar。那也行不通。我想我错误地了解默认路径/ cmd在调用命令时默认使用的路径。我不确定。

提前感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

我相信你遇到的问题是当你尝试

public static void main (String [] args){
    Runtime rt = Runtime.getRuntime();
    Process pr = rt.exec("java -jar \\Calculator.jar");
    pr.waitFor();
}

它查看了计算机的根目录,最后还有一个被遗忘的引号。您应该访问当前工作目录的方法是简单地删除\\,您可能还希望用引号括起jar文件路径,以防万一。

public static void main (String [] args){
    Runtime rt = Runtime.getRuntime();
    Process pr = rt.exec("java -jar \"Calculator.jar\"");
    pr.waitFor();
}