Running shell script from java


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Running shell script from java
# 1  
Old 04-24-2009
Running shell script from java

Hello All,

Hope all is well. I was trying to scratch my head here with simple problem of running Shell script in Java. I tried to google and look through forums but was unable to understand how to solve it.

Here is my simple Java class, which resides in different directory then my shell script. So I am trying to change path and run the shell script located there. Also, I am passing parameters to shell script from Java as arguments. But for some reasons ...I am getting IOException . Could you please suggest what I am I missing here.


Code:
 
public class test4
{
  public static void main(String [] args) throws IOException
        {
        Process P;
        P = Runtime.getRuntime().exec("cd ~/apps/source");
        P = Runtime.getRuntime().exec("test.sh \"" + args[0]+ "\" \"" + args[1] + "\" \"" + args[2]+"\" \"" + args[3] + "\" \"null\"");
         }
}


Thanks in advance,

Sam
# 2  
Old 04-24-2009
(A) Instead of the "cd" command and then the script execution, just put the absolute path of the script.
(B) Seems like "~" is not interpreted properly, so use the actual path devoid of "~".

Code:
$ 
$ # Display the contents of the shell script
$                                           
$ cat /home/r2d2/data/unix/test.sh
echo "First parameter   = $1" > test.log
echo "Second parameter  = $2" >> test.log
echo "Third parameter   = $3" >> test.log
echo "Fourth parameter  = $4" >> test.log
echo "Fifth parameter   = $5" >> test.log

$ 
$ # Display the contents of the java program
$                                           
$ cat test4.java
import java.io.IOException;
public class test4
{
  public static void main(String [] args) throws IOException
  {
     Process P;
     P = Runtime.getRuntime().exec("/home/r2d2/data/unix/test.sh \"" + args[0]+ "\" \"" + args[1] + "\" \"" + args[2]+"\" \"" + args[3]+ "\" \"null\"");
  }
}
$
$ # Compile
$
$ javac test4.java
$
$ # Execute, passing the input parameters
$
$ java test4 ant bat cat dog eel
$
$ # Verify that it ran successfully
$
$ cat test.log
First parameter   = "ant"
Second parameter  = "bat"
Third parameter   = "cat"
Fourth parameter  = "dog"
Fifth parameter   = "null"
$
$

Hope that helps,
tyler_durden
# 3  
Old 04-26-2009
Hello Tyler,

Thanks so very much for taking time out and testing it out. Really do appreciate it.

I was able to resolve the problem. Problem was that my shell didn't have execute rights on it and hence java was unable to trigger it. For whatever reasons Java didn't trap it!! Am I missing something here ?

BTW, "~" worked okay and Java was able to find shell script with "~"(tilda) in it.

Thanks again for help and enjoy sunny weekend.

- Sam
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Running java script from piped output

to run most other scripts through a pipe, something similar to the following is usually enough: cat script.sh | sh cat perl.pl | perl -- "<arguments" However, for javascript command line scripts, i cant seem to get this to work. Any ideas? cat hull.js #!/usr/bin/js ... (3 Replies)
Discussion started by: SkySmart
3 Replies

2. UNIX for Dummies Questions & Answers

Script Shell in java code

Hello, I try to run a script shell from a java program: but it runs only if i do :chmod 777 myShellScript in the terminal Please how can i insert chmod 777 in my java code without going through the terminal? Thank you (1 Reply)
Discussion started by: chercheur857
1 Replies

3. Programming

Script shell in java code

Hello, Please i want to insert this code in a java program because i need to call a java function inside the while: Please how can i do? thank you so much (9 Replies)
Discussion started by: chercheur857
9 Replies

4. Shell Programming and Scripting

Code java in script shell

Hello; Is it possible to insert Java code in a shell script, if so how please? Thank you (0 Replies)
Discussion started by: chercheur857
0 Replies

5. Programming

Script Shell in java code

Hello, This is my script shell: echo Mon premier script echo Liste des fichiers : ls -la exit 0 This is my code java: public class test { public static void main(String args) { try { Process process = Runtime.getRuntime().exec("sh script1.sh"); } catch... (2 Replies)
Discussion started by: chercheur857
2 Replies

6. Shell Programming and Scripting

Running remote system shell script and c binary file from windows machine using java

Hi, I have an shell script program in a remote linux machine which will do some specific monitoring functionality. Also, have some C executables in that machine. From a windows machine, I want to run the shell script program (If possible using java). I tried with SSH for this. but, in... (1 Reply)
Discussion started by: ram.sj
1 Replies

7. Shell Programming and Scripting

Running a Java Programm with a (korn)shell-script

hey everyone, For my studies i had to write a javaprogram which reads 2 integers from the keyboard and then using the basic operations(addition, division etc) with them. so far no problem. but now i gotta make a shell-script which: runs the program(compiled with javac) #!bin/ksh java... (1 Reply)
Discussion started by: simlmf
1 Replies

8. Solaris

Running from Shell Vs running from RC script

Hi, i have a script which need to do behave differently when run as a startup process from init.d/ rc2.d script and when run manually from shell. How do i distinguish whether my script is run by init process or by shell?? Will the command /proc/$$/psinfo | grep "myscript" work well???... (2 Replies)
Discussion started by: vickylife
2 Replies

9. Programming

exit status running java classpath in unix shell

I have a java classpath running inside of a unix shell script. During my testing it will error with lines that show an example like this below. java.io.FileNotFoundException error at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:129), ... (2 Replies)
Discussion started by: mmcds
2 Replies

10. Shell Programming and Scripting

Running Shell Script from Java

Hi How can I call a .sh (shell script) from a java procedure? Is this possible at all? Please tell me. Thanks. Asty (3 Replies)
Discussion started by: Asty
3 Replies
Login or Register to Ask a Question