Я хочу передать строку "! Changeme!" к Java-программе в командной строке, как:
java -cp "!AXIS2_CLASS_PATH!" ClientJava --userid admin --passwd "!changeme!"
Использование Windows XP, Java jdk 1.6.0_07.
AXIS2_CLASS_PATH заменяется как обычно, я полагаю, во время выполнения Java. Однако пароль! Changeme! также, кажется, заменяется пустой строкой. Я предполагаю, что эта замена является своего рода функцией JVM.
Использование следующей программы:
static int Run(String[] aArgs) {
for (String s: aArgs) {
System.out.println("arg: " + s);
}
return 0;
}
Я получаю следующие результаты:
"C:\Program Files\Java\jdk1.6.0_07\bin\java" -cp "!AXIS2_CLASS_PATH!"
ClientJava --userid admin --passwd "!changeme!"
arg: --userid
arg: admin
arg: --passwd
arg:
Мне нужно, чтобы пароль был пропущен как есть. Я пробовал все виды побега, но я не нашел, что мне нужно использовать.
Может кто-нибудь дать подсказку, как это сделать?
Решение, предоставленное Зак Скривена :
Используйте каретку, чтобы избежать восклицательного знака.
java -cp "!AXIS2_CLASS_PATH!" ClientJava --xxx "^!changeme^!"
arg: --userid
arg: admin
arg: --passwd
arg: !changeme!