1
我正在用Java创建一个需要在Mac和Windows中使用的Java应用程序。从Java启动Mac中的外部安装程序应用程序
这个应用程序的基本思想是只有一个主菜单(不同的Mac和Windows),您可以选择几个选项(安装应用程序,查看CD的内容,查看帮助手册...等)以及公司的标志等。
要安装的应用程序在Windows和Mac中会有所不同。
我想要做的是启动外部安装程序,一旦安装,我想启动应用程序。
我的主要问题是,一旦我在不同的进程中启动安装程序,waitfor()将返回一个有效的exitvalue并继续。
我想等到这个应用程序完全安装,然后再尝试运行它。
为Windows
Runtime.getRuntime().exec(" \"c:/.../ExternalAppforWin.exe\"");
为Mac
File instFolder = new File(System.getProperty("user.dir") + "ExternalAppforMac.pkg")
Process p = Runtime.getRuntime().exec(new String[] { "open", instFolder.toString() });
int exitVal = p.waitFor();
if (exitVal==0)
...
你能帮助我吗?
谢谢。
可以增加睡眠时间,如果你觉得窗口状态正在调查经常 – 2011-12-21 21:52:54
亚伦嗨。感谢您的帮助。我一直在研究有关Mac的com.sun.jna.platform,我只用两种方法找到com.sun.jna.platform.Mac.MacFileUtils:hasTrash()和moveToTrash(文件[]文件),所以我不知道不认为他们会帮助我。任何其他想法? – user897013 2011-12-28 11:27:19
我看到,似乎mac已经弃用它的所有动态链接库来与用户界面进行接口,这就是为什么jna没有内建默认绑定到这些功能,但我确实找到了jna的扩展,绑定目标c库,更具体地说是可可框架。该扩展名为rococoa,可在http://code.google.com/p/rococoa/找到。我从来没有在Mac上开发过,所以我不知道可可的来龙去脉,但它应该有绑定你需要 – 2012-01-02 10:05:50