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

dir*_*hen 7 java terminal jar

我正在使用基于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)
Run Code Online (Sandbox Code Playgroud)

f4l*_*lco 5

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

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

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