使用包含char">"的参数运行.jar一些奇怪的事情发生了

时间:2015-03-06 08:05:01

标签: java jar zxing

我有一个.jar文件,调用它是这样的:

java -jar qr-0.1.jar message=])rsfkoekfoe023k20f9k0fk3oi43jf

代码生成pdf417 qr图像,并将其放在c:/ tmp,所有输出都显示在控制台中。

问题是当我把角色>在消息中,如下:

java -jar qr-0.1.jar message=])>rsfkoekfoe023k20f9k0fk3oi43jf

这会在jar旁边创建一个随机文件,其中包含控制台输出,而pdf417 qr图像只编码前两个字符:/

当我调试时,问题是带有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;
        }
    }

1 个答案:

答案 0 :(得分:0)

这样说:

java -jar qr-0.1.jar message="])>rsfkoekfoe023k20f9k0fk3oi43jf"

或者使用反斜杠转义特殊字符