【发布时间】:2013-03-21 08:02:12
【问题描述】:
我正在使用基于 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)
【问题讨论】:
-
这真的取决于双击 jar 时操作系统的配置。我的配置为在 winrar 中打开它(我倾向于打开 jars 而不是运行它们)。
-
它被配置为在我的计算机上使用 Oracle Java 7 Runtime 打开。所以应该不是这个问题。并且客户端正确打开,显示界面很好。您看到任何其他可能的配置问题吗?谢谢!
-
有没有可能是在终端运行了一些登录脚本,导致你的PATH或者CLASSPATH不一样,导致两种情况下运行环境不一样?或者,我不知道双击文件时 Ubuntu 或 Mac 是如何设置它们的工作目录的,但也许这是一个线索。
-
您告诉我们双击时没有会发生什么(我假设您预计会发生这种情况)。如果您还告诉我们发生了什么,将会很有帮助。
-
现在在 Ubuntu 14.04 中双击基本正确,将 user.dir 设置为 /home/user 而不是终端将执行的 jar 的父目录。请注意,在 Windows 上双击将 user.dir 设置为 jar 的父级,这更直观以及终端的行为方式。