program tip

Ant가 잘못된 Java 버전을 사용하고 있습니다.

radiobox 2020. 11. 13. 08:00
반응형

Ant가 잘못된 Java 버전을 사용하고 있습니다.


Ant 1.7.0을 사용하고 JAVA_HOME에있는 Java 1.6을 설치했습니다.

Java 1.5를 사용하여 프로젝트를 빌드하고 싶으므로 JAVA_HOME을 Java 1.5 디렉토리로 내보냈습니다.

java -version

"1.5"라고되어 있습니다. Ant를 실행할 때 Java 1.6을 사용합니다.


이 문제가 발생했습니다. 기본 JRE가 1.6 일 때 ant-view에 빌드 파일을 처음 추가했기 때문에 발생했습니다.

프로젝트 별 JRE가 없었고 기본값을 1.5로 변경했으며 eclipse도 1.5에서 실행 중이고 JAVA_HOME도 1.5였습니다. 명령 줄에서 ant 대상을 실행하면 JRE 1.5가 사용되었지만 Eclipse 내에서는 여전히 1.6을 사용했습니다.

ant 대상을 마우스 오른쪽 버튼으로 클릭하고 Run As ...를 선택한 다음 JRE 탭에서 JRE를 변경해야했습니다. 이 설정은 후속 실행을 위해 기억됩니다.


Eclipse에서 :

  • build.xml을 마우스 오른쪽 버튼으로 클릭하십시오.

  • "다음 계정으로 실행"을 클릭하고 "외부 도구 구성 ..."을 클릭합니다.

  • JRE를 선택하십시오 . 사용중인 JRE를 선택하십시오.

작업을 다시 실행하면 이제 괜찮을 것입니다.


개미 매뉴얼 에 따르면 JAVA_HOME 설정이 작동해야합니다. 변경된 설정이 개미에게 표시되는 것이 확실합니까?

또는 JAVACMD 변수를 사용할 수 있습니다.


ant를 verbose 모드로 실행 ant -v하고 단서를 찾습니다.


javac 태그의 대상 및 소스 속성을 사용하여 대상 런타임을 설정할 수 있습니다. 아래 예제는 버전 1.4 이상을 지원하는 모든 컴파일러에서 모든 소스 코드를 대상 버전 1.4로 컴파일합니다.

<javac compiler="classic" taskname="javac" includeAntRuntime="no" fork=" deprecation="true" target="1.4" source="1.4" srcdir="${src}" destdir="${classes}">

참고 : 'srcdir'및 'destdir'은 빌드 스크립트의 다른 위치에 설정된 속성 값입니다. <property name="classes" value="c:/classes" />


Eclipse IDE를 사용하는 경우 다음 단계를 통해이를 달성 할 수 있습니다.

  1. ant 빌드 파일 ( build.xml) 에서 작업을 마우스 오른쪽 버튼으로 클릭합니다 .

  2. "다음 계정으로 실행"위에 마우스를 놓고 "외부 도구 구성 ..."을 클릭합니다.

  3. "인수"에 다음을 추가하십시오.

    -Dant.build.javac.target=1.5 -Dant.build.javac.source=1.5
    

Javac 작업 에서 사용할 호환성 수준 (1.4, 1.5, 1.6)을 지정할 수도 있습니다. "소스"및 "대상"수준 값을 설정할 수 있습니다. 여기에서 문서를 확인하십시오. Javac 작업 문서


이것은 다소 오래된 질문이지만 향후 참조를 위해 메모를 추가 할 것입니다.

비슷한 문제가 있었고 PATH 변수에서 내보내기 순서를 변경하여 수정했습니다.

예를 들어 다음을 수행하여 문자열을 내 PATH에 연결하는 방법을 사용하고있었습니다 (이것은 단지 예입니다).

$> export PATH='$PATH:'$JAVA_HOME

내 변수 PATH에 이미 Java가있는 경우 마지막 값은 의미가 없으므로 순서가 중요합니다. 이 문제를 해결하기 위해 먼저 변수를 추가 한 다음 PATH를 추가하여 반전을 시작했습니다.

이 아이디어에 따라 ANT_HOME이 내보내지는 순서를 뒤집 었습니다. ANT_HOME 앞에 JAVA_HOME을 추가합니다.

우연 일 수도 있지만 저에게는 효과가있었습니다.


빌드 파일 :

<target name="print-version"> 
   <echo>Java/JVM version: ${ant.java.version}</echo> 
   <echo>Java/JVM detail version: ${java.version}</echo> 
</target>

산출:

[echo] Java/JVM version: 1.5
[echo] Java/JVM detail version: 1.5.0_08

이클립스를 사용하지 않는 경우. 그런 다음 여기에 언급 된대로 파일에서 직접 ant java 속성을 변경할 수 있습니다.

http://pissedoff-techie.blogspot.in/2014/09/ant-picks-up-incorrect-java-version.html


Eclipse에서 Ant를 실행하는 경우 Eclipse는 class-path (build path)에 구성된 jdk 또는 jre를 사용합니다.


javac태그에 다음 두 가지 속성을 사용합니다 .

fork="yes"  
executable="full-path-to-the-javac-you-want-to-use".

속성에 대한 설명은 여기 에서 찾을 수 있습니다.


Set your JAVA_HOME environment variable with the required java version (in your case java 1.5), then in build.xml use executable="${JAVA_HOME}/bin/javac" inside <javac></javac> tag .

example:

<target name="java compiler" description="Compiles the java code">
    <javac executable="${JAVA_HOME}/bin/javac" srcdir="./src" 
        destdir="${build.dir}/classes"> 
    </javac> 
</target>

According to the Ant Documentation, set JAVACMD environment variable to complete path to java.exe of the JRE version that you want to run Ant under.


By default the Ant will considered the JRE as the workspace JRE version. You need to change according to your required version by following the below.

In Eclipse:

  • Right click on your build.xml click "Run As", click on "External Tool Configurations..." Select tab JRE.

  • Select the JRE you are using.

  • Re-run the task, it should be fine now.

참고URL : https://stackoverflow.com/questions/949678/ant-is-using-wrong-java-version

반응형