簡體   English   中英

如何使用Java應用程序在Mac OS X上打開System Profiler.app?

[英]How to open System Profiler.app on Mac OS X using a Java application?

我必須從我的Java應用程序中顯示Mac OS X的系統信息。

我創建了一個按鈕並嘗試執行以下命令:

private static String[] sysInfoPathMac =
    {"/usr/bin/open", "'/Applications/Utilities/System Profiler.app'"};

在按鈕的點擊事件中,我執行以下命令:

Runtime.getRuntime().exec(sysInfoPathMac);

單擊按鈕后,我什么也沒得到。 它不會引發任何錯誤,也不會運行系統分析器。

我到底在做什么錯,以及如何解決?

刪除單引號。 當您從外殼程序運行命令時,需要使用引號,因為參數中有空格。 從Java啟動過程時,這不是問題,因為數組的每個元素都被視為一個單獨的參數,而不管其是否包含空格。

String[] command = {"/usr/bin/open", "/Applications/Utilities/System Profiler.app"};
Process proc = Runtime.getRuntime().exec(command);
int resultCode = proc.waitFor();
if (resultCode != 0) {
    throw new Exception("failed to open system profiler");
}

請注意,通常在使用Runtime.exec()時,您將希望使用stdout和stderr流來避免死鎖(盡管在這種情況下這不是問題,因為“ open”命令不會產生太多輸出)。 有關此主題的更多信息,請查看Michael C. Daconta的文章“ When Runtime.exec()不會” http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM