无法从 ProcessBuilder 运行 另一个 java 程序?
Could not run another java programs from ProcessBuilder?
TestClass.java
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class TestClass {
public static void main(String[] args) throws IOException {
System.out.println("inside");
ProcessBuilder pb = new ProcessBuilder("java", "-cp", "", "test.OtherClass");
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
StringBuilder builder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
builder.append(line);
builder.append(System.getProperty("line.separator"));
}
String result = builder.toString();
System.out.println(result);
}
}
OtherClass.java
package test;
public class OtherClass {
public static void main(String ar[]) {
System.out.println("Hello Amit!");
}
}
我正在尝试 运行 来自 TestClass 的 OtherClass,但我做不到。 运行 TestClass 只打印 "inside"。我没有得到任何例外,我现在一无所知。
我是第一次实现 ProcessBuilder。
注意:我能够使用 ProcessBuilder 运行 简单的程序。
另外你能告诉我 -cp
是什么意思吗?我用谷歌搜索了很多,但找不到它的意思。
编辑:
我已经更新了代码,现在我得到了
inside
Error: Could not find or load main class test.OtherClass
谢谢!
它可能是类路径。
假设你有一个名为 test 的目录,你是否尝试过类似的东西:
ProcessBuilder pb = new ProcessBuilder("java", "-cp", ".", "test.OtherClass");
TestClass.java
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class TestClass {
public static void main(String[] args) throws IOException {
System.out.println("inside");
ProcessBuilder pb = new ProcessBuilder("java", "-cp", "", "test.OtherClass");
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
StringBuilder builder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
builder.append(line);
builder.append(System.getProperty("line.separator"));
}
String result = builder.toString();
System.out.println(result);
}
}
OtherClass.java
package test;
public class OtherClass {
public static void main(String ar[]) {
System.out.println("Hello Amit!");
}
}
我正在尝试 运行 来自 TestClass 的 OtherClass,但我做不到。 运行 TestClass 只打印 "inside"。我没有得到任何例外,我现在一无所知。 我是第一次实现 ProcessBuilder。
注意:我能够使用 ProcessBuilder 运行 简单的程序。
另外你能告诉我 -cp
是什么意思吗?我用谷歌搜索了很多,但找不到它的意思。
编辑:
我已经更新了代码,现在我得到了
inside
Error: Could not find or load main class test.OtherClass
谢谢!
它可能是类路径。 假设你有一个名为 test 的目录,你是否尝试过类似的东西:
ProcessBuilder pb = new ProcessBuilder("java", "-cp", ".", "test.OtherClass");