簡體   English   中英

如何在Linux,Windows和Mac上使用Java + JNI檢索硬盤的唯一ID

[英]How can I retrieve a hard disk's unique ID using Java+JNI on Linux, Windows and Mac

如何在Linux,Windows和Mac上使用Java + JNI檢索硬盤的唯一ID?

概括起來:您不能僅使用Java來做到這一點

我認為沒有簡單,統一的方法可以做到這一點。

但是,您可以為所有情況創建單獨的邏輯。 在Linux上,您可以檢查/ proc(使用java.io包)。 在OS X和Windows上可能有類似的方法,或者,如果沒有,您可以在這些系統上執行Shell腳本或批處理文件並解析輸出。

或者,您可以使用JNI,盡管這意味着要為所有環境構建模塊。

如前所述,您不能在問題的范圍之內。 但是,您可以通過JNI層使用特定於每個平台的Java和本機代碼的組合來完成此操作。

我可能是錯的,恕我直言,如果不使用JNI,就無法做到這一點。

分兩部分構建您的應用

  1. 本機組件將使用腳本/應用程序來查詢硬件,並輸出到文件
  2. 您的Java應用程序可從文件讀取並執行任何操作

您可以使用Java + JNA( https://github.com/twall/jna/ ),但是隨后您必須弄清楚如何通過使用要支持的每個平台上的本機庫來收集信息。

好處是您不必為每個平台編譯任何C / C ++代碼。 如果您決定使用該選項,則其他人可能會告訴您如何使用C / C ++代碼/庫找出不同平台上的硬盤ID。

AFAIK,在Linux上,您需要從/ proc或/ sys中讀取某些內容,在Windows上,我將仔細研究MSDN,看看可以在Visual Studio(C ++)中找到可用的內容,對於Mac,則需要其他人來填寫。Solaris如果操作正確,可能也應該支持/ BSD。 實際上,對於大多數與POSIX兼容的操作系統,我認為您應該能夠做到一定程度的統一。

暫無
暫無

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

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