如何在Linux,Windows和Mac上使用Java + JNI检索硬盘的唯一ID?
答案 0 :(得分:3)
总结一下:你不能只用Java
来做到这一点答案 1 :(得分:1)
我认为没有一种简单,统一的方法可以做到这一点。
但是,您可以为所有情况创建单独的逻辑;在linux上你可以检查/ proc(使用java.io包)。在OS X和Windows上可能有类似的方法,或者,如果没有,您可以在这些系统上执行shell脚本或批处理文件并解析输出。
或者您可以使用JNI,但这意味着要为所有环境构建模块。
答案 2 :(得分:0)
如前所述,您不能在问题的范围内。但是,您可以通过JNI层将每个平台特定的java和本机代码组合使用。
答案 3 :(得分:0)
我可能错了,imho,如果不使用JNI就无法做到这一点。
分两部分构建您的应用
答案 4 :(得分:0)
你可以使用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兼容的操作系统,我认为你应该能够在某种程度上统一。