使用包含字符“>”的参数运行 .jar 并发生一些奇怪的事情
Runing .jar with argument that contains char ">" and some strange things happen
我有一个 .jar 文件,可以这样命名:
java -jar qr-0.1.jar message=])rsfkoekfoe023k20f9k0fk3oi43jf
代码生成一个pdf417 qr图像,并将其拖放到c:/tmp,所有输出都显示在控制台中。
问题是当我把字符 > 放在消息中时,像这样:
java -jar qr-0.1.jar message=])>rsfkoekfoe023k20f9k0fk3oi43jf
这会在 jar 旁边创建一个随机文件,其中包含控制台输出,pdf417 二维码图像仅对前两个字符进行编码:/
问题是,当我调试时,带有 char > 的消息工作正常,它仅在我创建 jar 文件时中断。
这是我在代码中设置参数的方式:
for(String arg : args){
String[] argument = arg.split("=");
keyword = argument[0];
if(argument.length>1){
value = argument[1];
}
if(keyword.equals(KEY_MESSAGE)){
message = value;
}
else if(keyword.equals(KEY_WIDTH)){
w = Integer.parseInt(value);
}
else if(keyword.equals(KEY_HEIGHT)){
h = Integer.parseInt(value);
}
else if(keyword.equals(KEY_FILENAME)){
fileName = value;
}
else if(keyword.equals(KEY_FILEPATH)){
filePath = value;
}
}
这样说:
java -jar qr-0.1.jar message="])>rsfkoekfoe023k20f9k0fk3oi43jf"
或者使用反斜杠转义特殊字符
我有一个 .jar 文件,可以这样命名:
java -jar qr-0.1.jar message=])rsfkoekfoe023k20f9k0fk3oi43jf
代码生成一个pdf417 qr图像,并将其拖放到c:/tmp,所有输出都显示在控制台中。
问题是当我把字符 > 放在消息中时,像这样:
java -jar qr-0.1.jar message=])>rsfkoekfoe023k20f9k0fk3oi43jf
这会在 jar 旁边创建一个随机文件,其中包含控制台输出,pdf417 二维码图像仅对前两个字符进行编码:/
问题是,当我调试时,带有 char > 的消息工作正常,它仅在我创建 jar 文件时中断。
这是我在代码中设置参数的方式:
for(String arg : args){
String[] argument = arg.split("=");
keyword = argument[0];
if(argument.length>1){
value = argument[1];
}
if(keyword.equals(KEY_MESSAGE)){
message = value;
}
else if(keyword.equals(KEY_WIDTH)){
w = Integer.parseInt(value);
}
else if(keyword.equals(KEY_HEIGHT)){
h = Integer.parseInt(value);
}
else if(keyword.equals(KEY_FILENAME)){
fileName = value;
}
else if(keyword.equals(KEY_FILEPATH)){
filePath = value;
}
}
这样说:
java -jar qr-0.1.jar message="])>rsfkoekfoe023k20f9k0fk3oi43jf"
或者使用反斜杠转义特殊字符