Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.io.IOException: error=2, No such file or directory

Tags:

java

I am trying to run a java program from another java program using Runtime.getrunTime().exec

Code :

String java_home = System.getenv("JAVA_HOME");
 String[] command = {""+java_home+"/bin/java -cp -cp /sc/sug/p-lib/*  Tdesigner -cd /pr -in ing.rsp -out /scratch/sug/ng.pla -ad -stopO "};
                try {
                    proc = Runtime.getRuntime().exec(command);
                    proc.waitFor();
                    int exitCode = proc.exitValue();
                } catch (IOException e) {
                        e.printStackTrace();
                } catch (InterruptedException e) {
                        e.printStackTrace();
                }

It gives me following error:

 java.io.IOException: Cannot run program "/net/sl/sc/jdk6/bin/java -cp /sc/sug/p-lib/*  Tdesigner -cd /pr -in ing.rsp -out /scratch/sug/ng.pla -ad -stopOnError ": java.io.IOException: error=2, No such file or directory
            at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
            at java.lang.Runtime.exec(Runtime.java:593)
            at java.lang.Runtime.exec(Runtime.java:466)

Can anyone help me to solve the issue. is it that i need to add individual jar files with -cp rather than setting the directory.

like image 997
user1731553 Avatar asked Oct 15 '12 21:10

user1731553


2 Answers

Try removing the extra -cp from the command string array and use individual tokens in the array:

String[] command = { java_home + "/bin/java", "-cp",
   "/sc/sug/p-lib/*", "Tdesigner", "-cd", "/pr", "-in", "ing.rsp",
   "-out", "/scratch/sug/ng.pla", "-ad", "-stopO" };
like image 157
Reimeus Avatar answered Oct 21 '22 21:10

Reimeus


If you use exec(String[]) you must provide the command and its arguments in separate array elements, not all in one as you have done.

like image 27
user207421 Avatar answered Oct 21 '22 19:10

user207421