无法通过命令行将目录传递到 java 应用程序
Trouble passing directories into java application via command line
我正在尝试通过 cmd 行将一些目录传递到我的 java 应用程序。
这是两个目录:
\##############\Valuations\Production\CMRM-VC-FI\Bondzilla-Snaps\April 2016\
\#########\Home\A#######\Desktop\autorbtest.csv
(我把部分目录涂黑了)
因为第一个目录在末尾附近有一个 space,java 将第一个目录解释为两个单独的参数。我试图在目录 (") 周围加上双引号,但 java 仍然将 space 解释为一个单独的参数。
我认为这与目录开头的双反斜杠有关。
任何帮助都会很棒。谢谢
我猜测,根据上述输入,当在 space 路径周围使用引号时,以反斜杠结尾,实际上 OP 收到 one参数而不是两个。用 spaces 引用路径会起作用,但如果最终路径以反斜杠结尾则不会。愿 Windows 因使用反斜杠作为路径分隔符而永远受到诅咒。
要指定路径##############\Valuations\Production\CMRM-VC-FI\Bondzilla-Snaps\April 2016\,您需要做
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\Has a Space\At end\" "\someother\Path\Here"
时的例子
[0]: \somePath\Has a Space\At end" \someother\Path\Here
参数为:"\somePath\Has a Space\At end\" "\someother\Path\Here"
时的例子
[0]: \somePath\Has a Space\At end\
[1]: \someother\Path\Here
我正在尝试通过 cmd 行将一些目录传递到我的 java 应用程序。
这是两个目录:
\##############\Valuations\Production\CMRM-VC-FI\Bondzilla-Snaps\April 2016\ \#########\Home\A#######\Desktop\autorbtest.csv (我把部分目录涂黑了)
因为第一个目录在末尾附近有一个 space,java 将第一个目录解释为两个单独的参数。我试图在目录 (") 周围加上双引号,但 java 仍然将 space 解释为一个单独的参数。
我认为这与目录开头的双反斜杠有关。
任何帮助都会很棒。谢谢
我猜测,根据上述输入,当在 space 路径周围使用引号时,以反斜杠结尾,实际上 OP 收到 one参数而不是两个。用 spaces 引用路径会起作用,但如果最终路径以反斜杠结尾则不会。愿 Windows 因使用反斜杠作为路径分隔符而永远受到诅咒。
要指定路径##############\Valuations\Production\CMRM-VC-FI\Bondzilla-Snaps\April 2016\,您需要做
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\Has a Space\At end\" "\someother\Path\Here"
[0]: \somePath\Has a Space\At end" \someother\Path\Here
参数为:"\somePath\Has a Space\At end\" "\someother\Path\Here"
[0]: \somePath\Has a Space\At end\
[1]: \someother\Path\Here