我写了一个java程序,它可以在运行时执行另一个java程序。该计划如下
import java.io.*;
public class exec
{
public static void main(String argv[])
{
int i=5,j=6,k=7;
BufferedReader rd = new BufferedReader (new InputStreamReader(System.in));
try{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
System.out.println("Enter class name");
String s=br.readLine();
Process pro=Runtime.getRuntime().exec(s);
BufferedReader in=new BufferedReader(new InputStreamReader(pro.getInputStream()));
String line=null;
while((line=in.readLine())!=null)
{
System.out.println(line);
}
in.close();
}
catch(Exception err)
{
err.printStackTrace();
}
}
}
如果我执行此程序,它将提示用户输入要执行的任何类名(java程序)。这是使用这段代码Process pro=Runtime.getRuntime().exec(s);
一旦用户输入java类名,我应该能够将值5,6,7传递给用户输入的java类。一次只能传递一个值,并应计算该数字的平方。 我怎么能这样做?
答案 0 :(得分:3)
您可以将int参数传递给第二个Java程序,如下所示:
String[] cmd = { s, Integer.toString(n) };
Process pro=Runtime.getRuntime().exec(cmd);
...或单个String
:
Process pro=Runtime.getRuntime().exec(String.format("%s %d", s, n);
答案 1 :(得分:1)
在第二个程序中,您可以实现一个服务器套接字,然后在第一个程序中,您可以编写一个客户端套接字,将消息发送到第二个应用程序。
您可以看到以下文档:http://download.oracle.com/javase/tutorial/networking/sockets/