Java-jar“/users/admin/Sample code/Sample.jar”-空间问题

Java-jar“/users/admin/Sample code/Sample.jar”-空间问题,java,file,shell,exception,command-prompt,Java,File,Shell,Exception,Command Prompt,我正试图通过命令窗口中的以下代码,使用java触发有效负载安装: java-jar/users/admin/Sample code/Sample.jar-payloads/users/admin/Sample code/payloads-logfile testing.log-loglevel FINE 但由于“/users/admin/Sample code/Sample.jar”目录中存在空间,因此引发了异常 我怎样才能纠正这个问题 如果我的理解是正确的,这更像是一个shell插值问题,而不

我正试图通过命令窗口中的以下代码,使用java触发有效负载安装:

java-jar/users/admin/Sample code/Sample.jar-payloads/users/admin/Sample code/payloads-logfile testing.log-loglevel FINE

但由于“/users/admin/Sample code/Sample.jar”目录中存在空间,因此引发了异常


我怎样才能纠正这个问题

如果我的理解是正确的,这更像是一个shell插值问题,而不是Java问题,因此您可能需要修改标记以反映这一点

这将是一个棘手的问题,因为您需要知道在某个命令处理器外壳自行进行解析之前,该命令行将经历多少级别的解析。在整个过程的最后,我们希望以我们期望的方式将所有令牌呈现给java进程

这是普遍的问题

假设您直接从一个shell运行这个命令,我想这就是命令窗口的意思——我在这里要小心,这取决于shell如何将命令解析为令牌,并将控制权传递给Java进程。例如,在Windows上,必要和可用的引用与POSIX Shell不同,行为也不同

因此,具体的问题是保护这个空间,因为它对运行命令的shell非常重要,因此java进程可以看到它的参数,然后作为结果启动的java程序可以正确地看到/its/参数

您没有提到正在运行哪个shell,或者哪个参数没有通过java的参数,或者调用的java程序的参数。所以很难给你具体的帮助

但是,如果您使用的是某种POSIX shell,则可以在任意部分的违规空格上使用一个或多个反斜杠转义,直到获得所需的结果。或者使用嵌套的强引号来抑制shell或java main的插值

你可能想说这是一个什么样的程序,你是如何运行它的,在什么平台上,你得到了什么样的结果。知道在这个启动过程中错误被抛出的位置是很重要的

[编辑]

我看到您可能在某种POSIX shell上,在这种情况下,您应该能够使用单引号或反斜杠转义来保护这些参数中的空格[对于Java进程或main]

[编辑]

假设这是一个POSIX shell,并且似乎找不到启动文件,那么要么jarfile缺少此类,要么jar清单文件的格式不正确。这个类是否存在,正如拼写的大小写是重要的一样!在档案里?请记住,类名必须在代码中的类定义、文件名/jarfile条目和清单文件中完全匹配


也就是说,JVM似乎没有问题地查找jarfile,但是当它加载jarfile以获取清单信息和启动类时,却找不到它。因此,这似乎是jarfile本身的问题,而不是您的-jar optargs中有一个空格。

我在Windows7中使用CMD.exe。这个调用的java类抛出了java.lang.NoClassDefFoundError,你确定这是因为空间问题吗?因为这个异常也可能来自jarfile中的错误清单。您将不得不进行一些实验,因为当涉及到特殊字符处理时,cmd是一个糟糕且不一致的shell。另外,如果您没有在路径名中指定卷,我不知道没有它们cmd.exe将如何解析路径名。我认为您在这里有一些潜在的问题。另外,如果这是cmd.exe,那么正斜杠是怎么回事?我知道规范路径名可以用于配置为POSIX操作系统的Windows,但我很确定bog标准cmd会被它们弄糊涂。确保您的示例适用于您正在运行的平台。嗨,对不起。我半个世纪都需要它。不适用于windows。我刚刚确认了。因此,命令应该是:java-XX:MaxPermSize=512M-jar/home/user/sample-Apps-Framework/sample-installer/installer-1.0.24.jar-package/home/user/sample-Apps-Framework/sample-installer/payload-sampleapps-Framework-6.1.0-0.jar-logfile-spaceissue.log-loglevelfinetry使用单引号或嵌套引号。除此之外,我实在帮不了你,因为你还没有真正弄清楚这个命令的哪一部分失败了。我的假设是找到了jarfile,VM启动了主程序,并且主程序的参数格式不正确。你应该证实这一点。