1,105,592 Community Members

Help in passing arguments

Member Avatar
ajijacobm
Light Poster
39 posts since Aug 2009
Reputation Points: 0 [?]
Q&As Helped to Solve: 1 [?]
Skill Endorsements: 0 [?]
 
0
 

hi guys,
Im doing a project that executes a java file through another java file.. I need to use Runtime.exec() funtion for the purpose. But, there is trouble in passing the input to the java file. Please help me solve the situation.

my main funtion is shown below...

import java.io.*;
import java.io.InputStream;
import java.io.OutputStream;

public class Main {

    public static void main(String args[]) throws IOException {
        String command = "";
        Process child;
        BufferedWriter writer;
        try {
            command = "cmd /c start java E:\\file\\tests.java";
            child = Runtime.getRuntime().exec(command);
            InputStream in = child.getInputStream();
            OutputStream out = child.getOutputStream();
            try {
                String message = "95"; //Marks is given as 95
                out.write(message.getBytes());
            } catch (Exception e) {
                e.printStackTrace();
            }
            int c;  //to read from the output as your mark is 95 after passing on to the test.java
            while ((c = in.read()) != -1) {
                System.out.print((char) c);
            }
            in.close();
        } catch (Exception e) {
            int k = 0;
        }
    }
}

and also the java file tests.java which is to be executed from runtime.exec()

import java.io.*;
public class tests {
    public static void main(String args[])throws IOException
    {
        String mark;
        int marks;
        BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter your mark :");
        mark=bfr.readLine();
        marks=Integer.parseInt(mark);
        System.out.println("Your mark is:" +marks);
    }

}

The problem is the code is not working.. PLease help me.

Member Avatar
~s.o.s~
Failure as a human
10,399 posts since Jun 2006
Reputation Points: 2,496 [?]
Q&As Helped to Solve: 992 [?]
Skill Endorsements: 72 [?]
Administrator
Featured
 
0
 

You can't directly execute a Java file i.e. pass it to the 'java' process and execute it. You need to first compile it to a class file which is in turn passed to the 'java' command. Also, read this article which lists the pitfalls when using Runtime.exec.

You
This article has been dead for over three months: Start a new discussion instead
Post:
Start New Discussion
View similar articles that have also been tagged: