Java - 从终端双击并运行以打开.jar文件有什么区别?

时间:2013-03-30 20:38:25

标签: java jar terminal

我正在使用基于Java的应用程序(.jar文件)访问网站进行在线讨论。最近,我通过双击(在Mac和Ubuntu上)和从终端运行java -jar client.jar来运行应用程序之间遇到了一些奇怪的区别。当我通过双击打开客户端时,它将不允许我登录,而如果我从终端运行它,一切正常。

我知道描述可能过于模糊,但我只是想知道这两种运行.jar文件的方式之间是否存在任何一般差异。谢谢!

我的Java环境如下所示:

$ java -version
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) Server VM (build 23.7-b01, mixed mode)

1 个答案:

答案 0 :(得分:5)

根据用于调用程序的方法,当前工作目录可能会更改。当通过java -jar运行时,工作目录由终端设置,可以通过提示轻松识别。双击时,目录默认为用户的主目录。快速测试示范:

public class TestWorkingDirectory { 
    public static void main(String[] args) {
        javax.swing.JOptionPane.showMessageDialog(
                null, System.getProperty("user.dir"));
    }
}

假设JAR位于/home/test/Applications,它将在从终端运行时显示此路径。双击时,它只是/home/test。因此,使用两种方法(当归档位于~时)时路径可能相同,但不一定 - 尝试调试/重现异常行为时遇到困难。

相关问题