设置classpath java以在Runtime.exec中使用

时间:2010-03-16 00:38:14

标签: java classpath

我正在尝试使用Runtime.exec生成进程。我想使用我当前的类路径:System.getProperty(“java.class.path”)

不幸的是,我遇到了各种各样的问题。当它在我的Mac上运行时,它在Windows上不起作用。当类路径中有空格时,无法在我的Mac上运行。我总是得到的错误是ClassDefNotFound,所以它与我如何构建和传递类路径有关。

这是一些示例代码:

String startClass = "com.test.MyClass"
String javaHome = System.getProperty("java.home");
String javaCmd = javaHome + "/bin/java";
String classPath = "-Djava.class.path=" + System.getProperty("java.class.path");
String[] commands = new String[]{javaCmd, classPath, startClass};
String commandString = StringUtils.join(commands, " ");
Process process = Runtime.getRuntime().exec(commandString);

那么,我应该如何设置类路径?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

你需要针对'exec'的重载,它需要String[],而不是String。并且您已使用File类中的正确路径分隔符,因此您在Linux上使用冒号,在Windows上使用分号。