我最近一直負責制定一個方案,監測一堆從多個硬盤驅動器的硬盤驅動器的信息(序列,製造商,類型等)。在我最初的研究中,我發現使用一些C#代碼很容易,並以這種方式創建了測試程序。不幸的是,我需要使用Linux操作系統,這意味着c#不在桌面上。Java代碼拉動硬盤的信息從Linux
我很好奇,如果任何人知道,或者可以點我在發展中的Java/C/C++應用程序,將達到同樣的效果的正確方向。我知道如果你使用Java,你必須使用JNI,而且你在那個時候使用C/C++。
謝謝。
我最近一直負責制定一個方案,監測一堆從多個硬盤驅動器的硬盤驅動器的信息(序列,製造商,類型等)。在我最初的研究中,我發現使用一些C#代碼很容易,並以這種方式創建了測試程序。不幸的是,我需要使用Linux操作系統,這意味着c#不在桌面上。Java代碼拉動硬盤的信息從Linux
我很好奇,如果任何人知道,或者可以點我在發展中的Java/C/C++應用程序,將達到同樣的效果的正確方向。我知道如果你使用Java,你必須使用JNI,而且你在那個時候使用C/C++。
謝謝。
我不知道任何Java庫會讓您的生活更輕鬆,但如果您希望實現支持不同操作系統的獨立於操作系統的解決方案,則應該查看java.lang.Runtime,從而使您可以執行外部進程。您可以爲每個定義(CLI)命令的操作系統維護一個映射,以檢索所需的信息。這可能是比實現了一堆使用JNI本地調用更簡單:
Process p = Runtime.getRuntime().exec("df -h");
p.waitFor();
InputStream is = p.getInputStream();
/* work with command line output... */
我知道這不是一個完美的解決方案,但你可能想看看它。
C#不一定假表。聽說過單聲道項目? –
'sudo fdisk -l'或'cat/proc/scsi/scsi'如何?無需編程任何東西! – Ishtar
@dario_ramos我聽說過單聲道項目,但我必須爲該程序構建一個GUI,並且我的印象是,通過Mono,C#在這個意義上非常有限。 伊什塔爾我假定你的意思,我只是呼籲通過系統的那些命令? – Max