【发布时间】:2011-10-31 22:09:36
【问题描述】:
我在 Eclipse 中使用 Runtime.getRuntime().exec 从当前程序运行另一个 java 程序。 我使用了以下代码。
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
System.out.println("Enter the class name");
String s=br.readLine();
String str="XYZ";
String[] cmd = {"java","-cp", "C:/Users/..../workspace/Testing/bin",s,str};
Process pro=Runtime.getRuntime().exec(cmd);
我还将字符串“XYZ”传递给该程序。该程序只接受字符串并显示
你的字符串是 XYZ
但是通过使用线
字符串[] cmd = {"java","-cp", "C:/Users/..../workspace/Testing/bin",s,str};
我能够运行该程序,但它不接受任何参数。它既不显示输出也不显示任何错误。
我哪里出错了?
考虑要调用的程序是
import java.io.*;
public class Test
{
public static void main(String[] args) throws IOException
{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
System.out.println("Enter any string");
String s=br.readLine();
System.out.println("Your string is "+s);
}
}
这个程序应该接受字符串 XYZ 并打印 Your string is XYZ
【问题讨论】:
-
记录一下,如果您在eclipse之外手动执行exe进程它可以正常工作吗?
-
@TheCapn: 执行在有和没有 Eclipse 的情况下工作,但我无法以两种方式传递任何参数
-
我怀疑问题出在您调用的程序上。你有源代码吗?或者它更像是一个黑盒操作?
-
我确实有源代码,但这是我项目的一部分。无论如何考虑一个基本程序,它接受来自上述程序的参数“XYZ”并且只打印
Your string is XYZ -
我的意思是,如果您无法在 Eclipse 之外正确执行应用程序(即通过您的终端),那么问题一定出在您正在调用的程序上。我们之间是不是有什么误会?
标签: java eclipse runtime.exec