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?
3 Answers
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");
1 Comment
leijon
For later versions it has moved to java.lang.Runtime.
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.
1 Comment
Pops
Updated (2010) version of that article: devdaily.com/java/java-exec-processbuilder-process-1
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.