用java发出硬盘命令
Posted
技术标签:
【中文标题】用java发出硬盘命令【英文标题】:issuing hard drive commands with java 【发布时间】:2010-09-28 06:36:09 【问题描述】:有没有人知道在 Java 中向硬盘驱动器发出命令的方法? Java 甚至支持这种硬件交互吗?
例如,如果我想查询一个 SCSI 硬盘驱动器,是否有预先存在的 Java 方法来执行此操作,或者我必须自己编写?
http://en.wikipedia.org/wiki/SCSI 提供了一些关于 SCSI 命令的一般信息,以防您不熟悉。
【问题讨论】:
【参考方案1】:Java 不支持像这样直接与硬件对话。但是,您可以使用 JNI 从 Java 中调用 C/C++ 函数。
【讨论】:
我可以使用其他语言和 JNI 来访问硬盘驱动器,还是仅限于 C/C++?或者,是否可以完全用 C/C++ 编写由 Java 程序调用/运行的程序? 是的,是的。我听说你可以直接使用 asaembly,是的,你可以从 Java 中运行一个完整的程序。【参考方案2】:不,因为 Java 在“虚拟”机器上运行,而不是在真实机器上运行。但是它可以像前面提到的使用 JNI 的 dj 一样用作桥梁。
根据WikipediaJNI也可以直接调用汇编。 JNI 可用于调用用 C 或 C++ 编写的完整程序
【讨论】:
如果C/C++代码是一个完整的程序,那么没有理由使用JNI;你可以只执行程序。 JNI 实现起来并不简单,所以除非需要,否则我不会使用它。 JNI 用于调用其他语言的函数。我在宝丽来用它与信用卡读卡器交谈。【参考方案3】:三个词“JNI 或 JNA”。我强烈建议您看看后者,看看它是否适合您的情况,而不是仅仅选择 JNI。
【讨论】:
【参考方案4】:您需要用 C/C++ 编写 HDD 接口代码,然后使用 JNI 从 Java 调用它
【讨论】:
以上是关于用java发出硬盘命令的主要内容,如果未能解决你的问题,请参考以下文章