命令行参数中的空格

时间:2014-04-09 07:10:34

标签: java string arguments

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

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

因此,当我将args[0]分配给String时,由于空格,它会停止一半。

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

提前致谢:)

3 个答案:

答案 0 :(得分:8)

只需使用引号:

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

如果在“文件资源管理器”中选择一个或多个文件并通过RMB运行一个应用程序,则应用程序的参数应为所选文件。但是,如果相关文件夹中包含空格,则说明您被卡住了!无法添加双引号! 微软的错误?