无法从ProcessBuilder运行另一个java程序?

时间:2015-11-26 12:36:52

标签: java process 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只是打印#34;内部"。我没有任何例外,我现在也很无能为力。 我是第一次实施ProcessBuilder。

注意:我能够使用ProcessBuilder运行简单程序。 你能说出-cp的含义吗?我google了很多但找不到它的意思。

编辑:

我已更新代码,现在我正在

inside
Error: Could not find or load main class test.OtherClass

谢谢!

1 个答案:

答案 0 :(得分:0)

它可能是类路径。 假设你有一个名为test的目录,你尝试过类似的东西吗?

ProcessBuilder pb = new ProcessBuilder("java", "-cp", ".", "test.OtherClass");