我正在为大学做作业,我对命令行参数和空格有一个快速的问题。
我必须找到一个将在命令行中提供给我们的图像文件。我试图运行我的程序,但因为我的文件位置在文件夹名称中有空格,java假定有多个参数。
因此,当我将args[0]
分配给String
时,由于空格,它会停止一半。
有没有办法从命令行中取出所有内容并将其分配给String
?
提前致谢:)
答案 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运行一个应用程序,则应用程序的参数应为所选文件。但是,如果相关文件夹中包含空格,则说明您被卡住了!无法添加双引号! 微软的错误?