Можно ли выполнить двоичные файлы в Java?
Вопрос
У меня есть список двоичных файлов, написанных в Java, Ada, C и Python, и я хочу их выполнить. Как я могу это сделать? Есть ли завязывание JVM к этим языкам?
Решение
Если все, что вы хотите сделать, это выполнить существующие устройства, вы можете использовать exec
Методы от java.io.runtime
пространство имен.
Runtime rt = Runtime.getRuntime();
Process ps = rt.exec("path to my executable.exe");
Другие советы
да. Вот ссылка на хорошую статью блога о том, как это сделать: Команды системы в Java.
Гист этого заключается в том, что вам нужно сделать следующее:
// run the Unix "ps -ef" command
// using the Runtime exec method:
Process p = Runtime.getRuntime().exec("ps -ef");
Вы можете в значительной степени поставить любую команду там, но единственную Gotcha, в которой я столкнулся, будьте в курсе переменных системной среды, как путь, в котором вы запускаете свой JVM.
Если вы хотите взаимодействовать с двоичными API, используйте:
- Родной доступ Java (JNA): Для погрузки и вызова DLL.
- Java родной интерфейс (JNI): Для упаковки библиотеки C в Java.