Java ProcessBuilder在传递参数时使用字符串中的句点而不是斜杠

Java ProcessBuilder在传递参数时使用字符串中的句点而不是斜杠,java,processbuilder,xterm,Java,Processbuilder,Xterm,我试图用Java打开一个xterm终端,并在其中运行一个Java文件。下面是打开终端的Java代码: Process p2 = new ProcessBuilder("xterm", "-hold", "-e", "java", "/home/harry/main.class").start(); xterm可以正常打开,但是它说它找不到主类home.harry.main.class。我用斜线,但它们被改成了点。我做错了什么?提到xterm有误导性。问题(同意and)是如何在命令行上运行Jav

我试图用Java打开一个xterm终端,并在其中运行一个Java文件。下面是打开终端的Java代码:

Process p2 = new ProcessBuilder("xterm", "-hold", "-e", "java", "/home/harry/main.class").start();

xterm可以正常打开,但是它说它找不到主类
home.harry.main.class
。我用斜线,但它们被改成了点。我做错了什么?

提到
xterm
有误导性。问题(同意and)是如何在命令行上运行Java类。完整路径名和类文件名是必须分开的两个方面

不完全重复,这些链接可以提供一些见解:

即(指):

  • 可以使用classpath
    -cp
    选项指定“/home/harry”(请参阅)
  • “.class”后缀没有用处;只使用类名(可能是“main”)

它只是
main
(而不是
main.class
)<代码>“java”、“-cp”、“/home/harry”、“main”+鳗鱼气垫船它是一个完全合格的java类。只是xterm认为我给它的斜杠是句点。请阅读我的全部问题。我同意埃利奥特的观点。在命令行(或shell)上运行“xterm-hold-ejava/home/harry/main.class”时会发生什么?调用java命令的方法是让它知道在哪里可以找到类(使用-cp),然后让它知道要运行哪个类(包+类名)。