Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
批处理文件';%';设置java属性时放置额外的空间_Java_Windows_Batch File - Fatal编程技术网

批处理文件';%';设置java属性时放置额外的空间

批处理文件';%';设置java属性时放置额外的空间,java,windows,batch-file,Java,Windows,Batch File,我使用命令行运行java应用程序,因此我必须使用“-D”标志注入一些系统级属性。属性是作为参数传递给批处理文件的,我设置它并像这样运行jar文件 java -Dservice.url="http://localhost:%port%/someservice" -jar program.jar 问题在于%port%最终会增加空间,并导致出现问题。在打印应用程序中的属性时,我发现它被设置为这样 java -Dservice.url="http://localhost:%port%/someserv

我使用命令行运行java应用程序,因此我必须使用“-D”标志注入一些系统级属性。属性是作为参数传递给批处理文件的,我设置它并像这样运行jar文件

java -Dservice.url="http://localhost:%port%/someservice" -jar program.jar
问题在于%port%最终会增加空间,并导致出现问题。在打印应用程序中的属性时,我发现它被设置为这样

java -Dservice.url="http://localhost:%port%/someservice" -jar program.jar
service.url=/someservice

理想情况下应该是这样

service.url=


我尝试过删除引号、添加引号和许多解决方案,但它们都不起作用

始终将变量用双引号括起来,包括变量名,以确保其中没有空格:

set "port=8080"

始终将变量用双引号括起来,包括变量名,以确保其中没有空格:

set "port=8080"

显示设置变量
%port%
的代码换句话说,请显示批处理代码。如果
%
正在插入空格,为什么空格不在
8080
之前?是的。正确的。在脚本的开头,正在运行一个设置不同属性的循环。我刚刚检查了set port=something最后是否有额外的空格字符。删除已修复问题的。显示设置变量
%port%
的代码。换句话说,请显示批处理代码。如果
%
正在插入空格,为什么空格不在
8080
之前?是的。正确的。在脚本的开头,正在运行一个设置不同属性的循环。我刚刚检查了set port=something最后是否有额外的空格字符。删除已修复该问题的。