4

私のJavaプログラムに渡される引数の1つは、次のようなものab|cdです。最初に、このようにJavaプログラムを実行すると、

$ java className ab | cd

|Linuxシェルではパイプ記号として解釈されるため、失敗します。したがってab、Javaプログラムにのみ渡されます。だから私は2回目の試みをしました:

$ java className "ab | cd"

今回"ab|cd"は渡されますが、値には二重引用符が含まれます。プログラムが本当に意図しているのはですab|cd。引用符なしで正しい値を渡すにはどうすればよいですか?

4

5 に答える 5

8

コマンドシェルでは、「\」文字を使用して文字をエスケープできます。

 java className ab\|cd
于 2012-06-22T16:50:16.073 に答える
3

試してみてください(Linuxの場合):

$ java className ab\|cd

Windowsの場合:

java className ab^|cd
于 2012-06-22T16:54:13.310 に答える
2

次のコードのように、エスケープ文字を使用できます。

$ java className ab\|cd
于 2012-06-22T16:54:20.953 に答える
2

これを試して、

"\" is used inorder to nullify the effect of the characters which have special meanings.

java className ab\|cd
于 2012-06-22T16:57:59.440 に答える
-2

多分これを試してみてください:

arg="ab|cd"
java className $arg
于 2012-06-22T16:53:11.853 に答える