2009-08-27 4 views
45

iso-8859-1 인코딩을 사용하여 Java 소스 파일을 얻었습니다. 개미을 실행할 때 경고 : UTF-8 인코딩을위한 매핑 할 수없는 문자가 표시됩니다. ant -Dfile.encoding = iso-8859-1을 실행하거나 encoding = "ISO-8859-1"을 각 javac 문에 추가하면이 문제를 피할 수 있습니다.ant의 build.xml에서 -Dfile.encoding을 어떻게 설정합니까?

build.xml 내에서 속성을 전역으로 설정하는 방법이 있습니까? < 속성 이름 = "file.encoding"값 = "ISO-8859-1">이 작동하지 않습니다. 나는 foo = ISO-8859-1 속성을 추가하고 encoding = "$ {foo}"를 각 javac 문에 설정할 수 있음을 알고 있지만이를 피하려고합니다.

+0

문제는 네 곳에서 동시에 해결해야합니다. http://stackoverflow.com/a/34225997/715269 – Gangnus

답변

31

몇 가지 옵션 : 당신의 ANT_OPTS 환경 변수에 -Dfile.encoding=iso-8859-1를 추가

  1. 당신이 가지고있는 경우에
1

Ant 자체는 시스템 속성을 설정할 수 없지만 실제로 원한다면 시스템 속성을 설정하는 Java 프로그램을 작성하고 Ant 내에서 실행하십시오.

61

파일이로 인코딩하여 <javac> 호출의 모든 설정을 기본값으로

  • 사용 <presetdef> 특히, 전체 JVM이 특정 인코딩을 사용하도록 강요하는 것이 아니라 javac에 알려주는 것이 가장 좋습니다. 이 이유 때문에 javac task에 인코딩 속성이 있습니다.

    <javac srcdir="${src.dir}" destdir="${build.classes.dir}" encoding="iso-8859-1" /> 
    

    하지만 실제로 소스 파일을 UTF-8로 변환해야합니다. UTF-8에서는 모든 것이 맛있습니다. :)

  • +1

    내용을 UTF-8로 변환하더라도 깨끗한 환경이 필요한 경우가 있습니다 (LC_ALL = C) 그리고 거기에 꽤 많은 도움이됩니다. – user1050755

    2

    빌드 파일을 변경하기 전에 아래와 같은 Java 컴파일 오류가 발생합니다.

    ApplicationConstant.java:73 : 오류 : 나는 것보다

    <javac encoding="ascii"...> 
    

    : 부호화 ASCII 용 맵 할 문자 난으로 개미 자바 대상을 가지고 사용될 때 오류가 발생할 수있다 public static final String INVALID_MDTVERSION_SECOND = " This not compatible with the server’s Version";

    아래와 같이 변경하십시오

    <javac encoding="iso-8859-1" ...> 
    

    이 문제가 해결되었습니다.

    관련 문제