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?
            Asked
            
        
        
            Active
            
        
            Viewed 1.7k times
        
    3 Answers
14
            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");
        Oded
        
- 489,969
 - 99
 - 883
 - 1,009
 
- 
                    For later versions it has moved to java.lang.Runtime. – leijon Dec 17 '14 at 10:22
 
3
            
            
        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.
        Chris J
        
- 9,164
 - 7
 - 40
 - 39
 
- 
                    5Updated (2010) version of that article: http://www.devdaily.com/java/java-exec-processbuilder-process-1 – Pops May 04 '10 at 14:05
 
2
            
            
        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.
 
        Frederik
        
- 14,156
 - 10
 - 45
 - 53