无法通过命令行将目录传递到java应用程序

无法通过命令行将目录传递到java应用程序,java,command-line-arguments,Java,Command Line Arguments,我试图通过cmd行将一些目录传递给我的java应用程序 以下是两个目录: \##############\估价\Production\CMRM-VC-FI\Bondzilla Snaps\2016年4月\ \#########\Home\A########\Desktop\autobtest.csv (我把目录的某些部分涂掉了) 因为第一个目录的末尾有一个空格,所以java将第一个目录解释为两个独立的参数。我试图在目录(“)周围加上双引号,但java仍然将该空间解释为一个单独的arg 我认为这与

我试图通过cmd行将一些目录传递给我的java应用程序

以下是两个目录:

\##############\估价\Production\CMRM-VC-FI\Bondzilla Snaps\2016年4月\ \#########\Home\A########\Desktop\autobtest.csv (我把目录的某些部分涂掉了)

因为第一个目录的末尾有一个空格,所以java将第一个目录解释为两个独立的参数。我试图在目录(“)周围加上双引号,但java仍然将该空间解释为一个单独的arg

我认为这与目录开头的双反斜杠有关


任何帮助都会很好。谢谢

根据上述输入,我猜测,当在以反斜杠结尾的路径周围使用引号时,OP实际上收到的是一个而不是两个参数。用空格引用路径会起作用,但如果最终路径以反斜杠结尾则不会起作用。可以吗因使用反斜杠作为路径分隔符,indows将永远受到诅咒

要指定路径,需要执行以下操作:

java WHAT_EVER_ARGS CLASSNAME "\##############\Valuations\Production\CMRM-VC-FI\Bondzilla-Snaps\April 2016\\" "other file"
作为检查,您可以在
main
方法中添加:

    int i = 0;
    for (String arg : args) {
        System.out.printf("[%d]: %s%n", i++, arg);
    }
您应该看到预期参数的数量。如果不将尾部反斜杠加倍,您将只看到一个输出

参数为:
“\somePath\末尾有一个空格\”“\someother\Path\Here”

[0]:\somePath\在“\someother\Path\此处”的末尾有一个空格

参数为:
“\somePath\在\\”“\someother\Path\Here\末尾有一个空格”时的示例

[0]:\somePath\末尾有一个空格\
[1] :\someother\Path\此处


您应该显示解析inputwell的代码以及传递到主函数的参数。java中的main函数接受1个参数,即字符串[]args。java将参数加载到数组中,我不解析输入。java解释参数的方式只是通过空格。在这里显示我的代码不会有太大的相关性,我想这当然会有很大的相关性。我们在这里检查代码,而不是目录结构。没有任何代码,任何人都无法帮助您。无论我的应用程序如何处理参数,如果java没有正确解析参数,那么这与我的代码毫无关系。所以再次强调,毫无理由地加入一堆代码是不相关的。我不想把事情复杂化。另一个用户提供了一个效果很好的答案。也可以只做“2016年4月”卡里纳的“估价\生产”\CMRM-VC-FI\Bondzilla快照,确实可以,但如果有多个片段中有空格,则会变得更复杂,因为可能需要引用多个片段。我个人认为根本没有必要使用尾随斜杠,但这是另一回事。我也同意不需要尾随斜杠,但我想最大的问题是,从技术上讲,这是用户输入。。。它可能是任何东西。