Кто-нибудь знает способ отдавать команды на жесткий диск в Java? Поддерживает ли Java вообще такое взаимодействие с оборудованием?
Например, если у меня есть жесткий диск SCSI, который я хотел бы запросить, существует ли уже существующий Java-метод для этого, или мне придется написать свой собственный?
http://en.wikipedia.org/wiki/SCSI содержит некоторую общую информацию о командах SCSI на случай, если вы не знакомы.




Java не поддерживает такой прямой обмен данными с оборудованием. Однако вы можете использовать JNI для вызова функции C / C++ из Java, которая может.
Да и да. Я слышал, что вы можете использовать это напрямую, и да, вы можете запускать целую программу из Java.
Нет, поскольку Java работает на «виртуальной» машине, а не на реальной. Но его можно было бы использовать как мост, как упоминал ранее ди-джей, используя JNI.
Согласно Википедия JNI также может вызывать сборку напрямую. JNI можно использовать для вызова полных программ, написанных на C или C++.
Если код C / C++ представляет собой законченную программу, нет причин использовать JNI; вы можете просто выполнить программу. JNI нетривиально реализовать, поэтому я бы не стал его использовать, если в этом нет необходимости. JNI используется для вызова функции на других языках. Я использовал его в Polaroid, чтобы поговорить с устройством для чтения кредитных карт.
Три слова «JNI или JNA». Я настоятельно рекомендую взглянуть на последний, чтобы увидеть, подходит ли он для вашей ситуации, вместо того, чтобы просто выбирать JNI.
вам нужно написать код интерфейса жесткого диска на C / C++, а затем вызвать его из Java с помощью JNI
Могу ли я использовать другие языки с JNI для доступа к жесткому диску или это ограничено C / C++? В качестве альтернативы, можно ли написать программу полностью на C / C++, которая вызывается / запускается программой Java?