繁体   English   中英

命令行参数中的空格

[英]Spaces in Command Line Arguments

我正在为大学做作业,我有一个关于命令行参数和空格的快速问题。

我必须找到一个将在命令行中提供给我们的图像文件。 我正在尝试运行我的程序,但是因为我的文件位置在文件夹名称中有空格,所以 java 假设有多个参数。

因此,当我将args[0]分配给String ,由于空格,它会在中途停止。

有没有办法从命令行中获取所有内容并将其分配给String

提前致谢 :)

只需使用引号:

java -jar MyThing.jar "My File Name with loads of spaces.jpg"

快速演示:

public static void main(final String[] args) throws Exception {   
    Stream.of(args).forEach(System.out::println);
}

输出:

java -jar MyThing.jar My File Name with loads of spaces.jpg
My
File
Name
with
loads
of
spaces.jpg

java -jar MyThing.jar "My File Name with loads of spaces.jpg"
My File Name with loads of spaces.jpg

系统将空格字符解释为命令行参数的分隔符。 如果你想要带有空格的参数,你可以用双引号将它们连接起来。

% java test.class "Java is escaped"
Java is escaped

如果您在文件资源管理器中选择一个或多个文件并从 RMB 运行应用程序,则应用程序的参数应为所选文件。 但是如果有问题的文件夹包含空格,你就被卡住了! 没办法加双引号! 微软漏洞?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM