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