2013-11-26 3 views
2

최근에 우리는 serverA에서 serverB로 java 빌드 작업을 마이그레이션 중이 었습니다. 한자를 포함하는 Java 소스 코드는 원래 serverA에서 Ant (< javac 인코딩 = "GBK"... >)로 잘 컴파일됩니다.), 새로운 서버 B에 동일한 코드를 체크 아웃하고 동일한 Ant 스크립트를 실행하면 인코딩 오류가 "GBK 인코딩 할 수없는 문자"로 발생했습니다. JDK 버전은 동일합니다.Javac 컴파일 인코딩 문제

왜 동일한 Ant 인코딩 파라미터를 가진 동일한 소스 코드가 다른 컴파일 결과를 가질 수 있는지 알 수 없습니다.

잠재적으로이 문제, OS 설정을 유발할 수있는 설정이 있습니까?

감사합니다. 일부 조사한다 후

+2

정말 동일한 소스 코드입니까? 두 서버의 동일한 파일에 대해 파일을 비교합니까? serverB에 체크 아웃 할 때 문자 인코딩이 엉망이 될 수 있습니다. –

+0

@TedHopp 난 당신이 잠재적으로 손상으로 인해 다른 파일 인코딩을 얻을 수있는 동일한 저장소에서 체크 아웃 것을 의미한다고 생각합니다. serverA와 serverB의 오류 파일을 Beyond Compare와 비교 한 결과 동일하게 보입니다. – foolhunger

+0

아주 이상한 ... 올바른 자바가 사용되고 있는지 확인하기 위해'JAVA_HOME'과'javac -version'을 검사 할 것입니다. –

답변

2

  1. 자바 파일은 GBK 인코딩 문제가 않습니다.
  2. serverB에서 Ant 빌드 스크립트에는 javac 매개 변수 source = 1.6 target = 1.6이 있지만 serverA에는 javac 매개 변수가 없습니다.

serverB에서 <javac> 작업의이 두 매개 변수를 제거하면 성공이 성공합니다.

우리는 여전히 그 정확한 이유를 이해하지 못하지만 최소한 문제는 해결되었습니다.

실마리가있는 이유는 다음과 같습니다.

감사합니다.