Is it possible to execute binary files in java?
Question
I have a list of binaries written in Java, Ada, C, and Python and I want to execute them. How can I do that? Are there any JVM binding to those languages?
Solution
If all you want to do is execute existing applictions, you can use the exec
methods from the java.io.runtime
namespace.
Runtime rt = Runtime.getRuntime();
Process ps = rt.exec("path to my executable.exe");
OTHER TIPS
Yes. Here is a link to a good blog article on how to do it: Running system commands in Java.
The gist of it is that you need to do the following:
// run the Unix "ps -ef" command
// using the Runtime exec method:
Process p = Runtime.getRuntime().exec("ps -ef");
You can pretty much put any command in there but the only gotcha that I have encountered in be aware of system environment variables like the PATH that you are running your JVM in.
If you want to interact with the binary API's, use:
- Java Native Access (JNA): for loading and calling DLLs.
- Java Native Interface (JNI): for wrapping a C library in Java.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow