这是我的代码。
public class Test {
public static void main(String[] args) {
String directory = System.getProperty("user.home") + File.separator + "cache";
System.out.println(directory); // "/Users/byron1st/cache"
try{
ProcessBuilder builder = new ProcessBuilder("java",
"-cp", directory,
"-Xbootclasspath/p:", directory,
"framework.PFSystemMain");
builder.redirectErrorStream(true);
builder.redirectOutput(new File(System.getProperty("user.home") + "/output.txt"));
builder.start();
} catch(IOException e) {
e.printStackTrace();
}
}
}
该程序构建一个进程,使用-cp和-Xbootclasspath命令运行Java程序。目标程序的类位于“/Users/byron1st/cache”文件夹中。 我想做的是运行
java -cp /Users/byron1st/cache -Xbootclasspath/p: /Users/byron1st/cache framework.PFSystemMain
。使用 Xbootclasspath/p:
的原因是我有一些用于记录日志的插装类。这段代码无法运行进程,只会产生一个错误消息,意思是“找不到或加载名为'.Users.byron1st.cache'的默认类”。(很抱歉直接展示错误消息,因为它是用韩语编写的。)
我的 ProcessBuilder 代码有什么问题?