데이터 절단 '$'또는 '&'자바 명령 줄 인수로 사용된다

리시 :

내 자바 인수의 데이터의 일부로 '$'또는 '&'를 통과 할 때 나는 데이터 절단을 얻고있다. 나는 그 문제가 이스케이프 문자를 사용하여 '\' '$'전에 해결할 수 있습니다 알고 있지만 나는 우리가이 단지 '$'또는 '&'가 아니라 같은 다른 특수 문자에 대한보고있는 이유를 이해하지 못하는 '@', '#', '%', '^'또는 '*'

다음은이 오류를 재현하는 내 독립 테스트 케이스입니다

import java.util.Arrays;
public class Main{

    public static void main(String [] args)
    {
        System.out.println(Arrays.toString(args));
        System.out.println(args[0]);
    }
}

입력

java Main name=Daniel$Burgers

산출

[name=Daniel]
name=Daniel
존 소총 :

이것은 자바 문제가되지 않습니다 - 그것은 당신의 쉘; 명령 줄이있는 당신은 코드를 실행하고 있습니다. $일반적 껍질 변수 교체를 위해 사용된다; &일반적으로 백그라운드 프로세스에 사용됩니다. 동일한 사용하여 에코를 볼 것 :

$ echo name=Daniel$Burgers

산출:

name=Daniel

당신은 작은 따옴표로 값을 넣을 경우, 해당 문자열 (다른 작은 따옴표)이 끝날 때까지 아무것도 특별한 작업을 수행하지 쉘을 알려줍니다 :

$ echo 'name=Daniel$Burgers'

산출:

name=Daniel$Burgers

같은 변화는 자바 호출을 수정해야합니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=23336&siteId=1