0

我创建了一个 java 项目,当我从 eclipse 执行我的应用程序时,它没有任何问题,也没有例外。我创建了一个 jar 来执行它,它可以在我用于开发的计算机上运行,​​我在另一台电脑上尝试过,它只有在我java-jar program.jar在 CMD 中执行时才有效。我尝试使用我的 jar 使用 jarBundler 创建一个应用程序 mac (.App)。但问题是当我运行应用程序时它可以工作,但它并没有停止。事实上,我的一个按钮执行一个脚本,一个条形执行在执行结束时停止。启动脚本的mac应用程序不会停止,如果我在终端中尝试我的脚本,它可以与它工作的jar一起工作。我不知道是什么问题以及如何检测它。

4

2 回答 2

0

尝试将日志记录(调试)消息合并到您的代码中(尤其是未按预期完成执行的方法)。跟踪对方法执行至关重要的所有对象的状态,并比较不同环境下的结果。

如果您使用多个线程,请添加日志记录以跟踪它们的状态并确保它们按预期结束并且没有死锁。

关于环境的差异(不同的操作系统和控制台/UI 执行),检查所有 java 特定的环境变量,即 JAVA_HOME、JAVA_OPTS 等。您的 UI 和控制台用户可能(尽管极不可能)使用不同的环境。变量。

于 2013-03-13T09:40:36.980 回答
-1

如果停止脚本在 mac 中不起作用,那么您可以对代码进行一些更改并编写关闭脚本,因为它可以在两个平台上工作。

如果无法获得这样的代码,而不是为 mac 和其他操作系统编写不同的关闭脚本,那么首先您编写代码用于通过代码识别操作系统,而不是根据操作系统通过 macthing 运行代码。

了解操作系统喜欢:

public static boolean isWindows() {

        String os = System.getProperty("os.name").toLowerCase();
        // windows
        return (os.indexOf("win") >= 0);

    }

    public static boolean isMac() {

        String os = System.getProperty("os.name").toLowerCase();
        // Mac
        return (os.indexOf("mac") >= 0);

    }

你能澄清一下结束脚本吗?这会有帮助..

--嗡--

于 2013-03-13T09:48:49.280 回答