2011-08-31 1 views
10

-source 1.5 -target 1.5와 함께 ant 부트 클래스 경로를 어떻게 설정합니까?ant bootclasspath 설정 : JDK 1.7에 bootclasspath없이 이전 소스를 설정하는 새로운 javac 경고가 있습니다.

어떻게 1.5 JDK에 하드 코딩 된 경로가 될 수 있습니까? ant에서 JAVA_HOME을 사용할 수있는 것과 비슷한 환경 변수를 bootclasspath로 설정할 수 있습니까?

이상적으로 나는 환경 변수를 설정하거나 ant에 인수를 전달하는 것과 같은 작업을하고 싶습니다.

+0

사실, 당신은 단지 당신의 1.5 JRE가 아닌 전체 JDK의 rt.jar이 필요 : 내 경우에는 그것이 경우 * nix에서 스크립트 환경에서이 간단한 조각을 사용하여이 변수를 설정하는 것이 좋다 jce.jar 그래서도했다 , 나는 생각한다. –

답변

14

다음은 환경 변수에서 Java 5 부트 클래스 위치를 가져 와서 사용하는 방법을 보여주는 그림입니다.

먼저 환경 변수 (예 : JAVA5_BOOTCLASSES)를 설정하십시오. property task을 사용하면 환경에 액세스 할 수 있으며 인수 인 javac task은 설정을 컴파일러로 전달합니다. 그래서 컴파일러는 다시 기본 부팅 클래스 경로에 떨어질 것 - 환경 변수가 설정되지 않은 경우, 개미는 그것을 무시하고없이 진행됩니다

<property environment="env" /> 
<property name="java5.boot.classpath" value="${env.JAVA5_BOOTCLASSES}" /> 

<javac source="1.5" target="1.5" 
     bootclasspath="${java5.boot.classpath}" 
     ... 
/> 

참고.

또 다른 옵션은 switch off the warnings이어야하며 bootclasspath는 신경 쓰지 않아야합니다. 뭔가 같은 것

<javac srcdir= ... > 
    <compilerarg arg="-Xlint:-options" /> 
</javac> 

하지만 그것은 미묘한 버그에 노출 될 가능성이 있습니다.

+0

JDK1.7 실행 파일을 가리 키도록 javac 태스크의 실행 가능 속성을 추가하여 더 명확하게 만들 수 있습니다. –

2

변수 JAVA5_BOOTCLASSES에는 rt.jar뿐 아니라 필요한 모든 라이브러리가 포함되어야합니다.

export JAVA5_BOOTCLASSES="" 
for i in /usr/lib/jvm/java/jre/lib/*.jar; do 
    export JAVA5_BOOTCLASSES=$JAVA5_BOOTCLASSES:$i 
done 
관련 문제