运行“街道”流程的代码:
Process process = runtime.exec("java -classpath \\bin trafficcircle.Street 1 2");
'街'的地方是:
public class Street {
/**
* @param args
* 0 - Simulation run time
* 1 - Flow time interval
*/
public static void main(String[] args) {
System.out.println(args[0]);
System.out.println(args[1]);
System.out.flush();
}
}
进程打印出来:
错误:无法找到或加载主类trafficcircle.Street
处理exitValue:1
是的,这适用于cmd行:
C:\ Users \ Brent> java -classpath“D:\ Java Programs \ IPCTrafficCircle \ bin”trafficcircle.Street 1 2
答案 0 :(得分:2)
此代码通过键入命令行/bin
在文件夹java Test
中运行时提供预期结果。
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) throws Exception {
Process process = Runtime.getRuntime().exec(
"java trafficcircle.Street 1 2");
BufferedReader br = new BufferedReader(new InputStreamReader(
process.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
}
}
但是,在Eclipse中运行时,它不会给出任何结果。为了得到结果,我必须设置类路径。
"java -cp /Users/wannik/Java/Workspace/MyProject/bin trafficcircle.Street 1 2");
答案 1 :(得分:1)
Runtime.exec()
会抱怨,这是您正在运行的进程。您正在阅读的消息来自该流程的输出。
您是否注意到您执行的操作与您在命令行上的操作之间存在差异? 那是问题。
您正在执行的java JVM需要能够找到您希望它运行的类。您提供的类路径(\bin
)不正确。