代码之家  ›  专栏  ›  技术社区  ›  phil swenson

正在设置类路径java以在Runtime.exec中使用

  •  2
  • phil swenson  · 技术社区  · 16 年前

    我正在尝试使用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 回复  |  直到 16 年前
        1
  •  1
  •   bmargulies    16 年前

    你需要瞄准“exec”的过载 String[] ,而不是字符串。您已经使用了 File