2014-03-02 54 views
1

当我尝试在命令行命令它执行罚款的Java通过shell脚本的命令行参数

$: /application/jre/bin/java -classpath /application/common/lib/apps.jar: ./updater.jar com.application.updatermain mobile 

此执行完全正常,并返回我的结果,而当我尝试把这个在一个名为run.sh

如果我创建一个run.sh作为

/application/jre/bin/java -classpath /application/common/lib/apps.jar: ./updater.jar com.application.updatermain [email protected] 

,并尝试运行它

./run.sh mobile 

它的行为怪异

我的Java代码:

if (args.length == 1) { 
    if (args[0].equalsIgnoreCase("mobile")) { 
     updateDB = true; 
    } else { 
     System.out.println(" 1 :Usage: ./run.sh [mobile] "+ args[0]); 
     return; 
    } 
} 

它给我的输出

1 :Usage: ./run.sh [mobile] mobile 

我在这里缺少什么。

非常感谢

+0

不要把'$ @'引号。 – TypeIA

+0

试过没有工作:( – Mok

+0

当你打印'args'(不仅仅是'args [0]')时,你要做什么? – Trein

回答

1

似乎有些空间增加的说法。 必须trimarg[0]

if (args.length == 1) { 
    if (args[0].trim().equalsIgnoreCase("mobile")) { 
     updateDB = true; 
    } 
    else { 
     System.out.println(" 1 :Usage: ./run.sh [mobile] "+ args[0]); 
     return; 
    } 
    } 
+0

我没有得到任何空间,当我尝试打印它时 – Mok

+0

试试这个:System.out.println(“1:Usage:./run.sh [mobile]#”+ args [0] +“#”); –

1

"./updater.jar";之前取出空间脚本"run.sh"应包含:

/application/jre/bin/java -classpath /application/common/lib/apps.jar:./updater.jar com.application.updatermain [email protected] 
相关问题