Java Runtime.getRuntime().exec返回空字符串
这是我使用的代码:Java Runtime.getRuntime().exec返回空字符串,java,command-line,process,inputstream,runtime.exec,Java,Command Line,Process,Inputstream,Runtime.exec,这是我使用的代码: Runtime runtime = Runtime.getRuntime(); Process process = runtime.exec("cmd /C cd C:/Users/ASUS/Desktop/semantics/semantics/bin"); process = runtime.exec("java test \"abc\" \"def\""); InputStream is = process.getInputStream(
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("cmd /C cd C:/Users/ASUS/Desktop/semantics/semantics/bin");
process = runtime.exec("java test \"abc\" \"def\"");
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = "", tmp;
while ((tmp = br.readLine()) != null) {
line += tmp;
}
System.out.println(line);
我尝试使用诸如“cmd/C dir”之类的命令,得到了一个正确的返回值
这是我的测试应用程序:
import semantics.Compare;
public class USAGE {
public static void main(String[] args) {
String a = args[0];
String b = args[1];
Compare c = new Compare(a,b);
System.out.println(c.getResult());
}
}
要设置以Runtime.exec启动的进程的工作目录,请使用将文件作为参数之一的版本
工作目录是进程的私有目录,不能通过在其他进程中运行“cd”命令来更改。您的
测试
应用程序是否将任何内容打印到标准输出?我编辑了我的问题,请重新检查。您可以传递null,这意味着子进程将从当前进程继承环境。不过,您可能会发现ProcessBuilder类更易于使用。