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