从java程序中执行.app文件

时间:2012-11-13 22:35:12

标签: java macos exe .app

我需要从我的java应用程序中执行外部程序。我在mac上编程并且有一个.app应用程序我想在用户选择它时运行。它使用以下命令在Windows上成功运行:

String cmd = "path_to_executable\program.exe\"";

Process p = Runtime.getRuntime().exec(cmd); ...

但这不适用于.app文件。我已经打开了.app文件的内容,并找到了一个Unix可执行文件以及其他支持文件。 unix可执行文件是否等同于.exe文件?

3 个答案:

答案 0 :(得分:5)

在OS X上从Java启动Mac应用程序只需使用Application作为参数调用内置open命令。 OS X中的open命令行工具知道如何正确打开许多不同的文件类型,包括应用程序包。如果您尝试启动TextEdit.app应用程序,则应调用:

open /Applications/TextEdit.app

在Java中,您将使用:

String cmd = "open /Application/TextEdit.app";
Process p = Runtime.getRuntime().exec(cmd);

答案 1 :(得分:1)

是的,您应该运行的可执行文件是位于.app包中的unix可执行文件。它可能无法正常工作,您可能需要cd进入目录或其他东西。

大多数应用程序二进制文件位于Contents / MacOS / App Name中。您可以创建一个方法,该方法将接受字符串名称并根据标准目录执行该二进制文件。

答案 2 :(得分:0)

.app文件实际上只是一个文件夹。这是一种在Mac上自包含应用程序的方法。实际的二进制文件很可能是您找到的Unix可执行文件。了解该应用程序的一些细节会有所帮助。

.app的二进制文件位于Application.app/Contents/MacOS

相关问题