2013-03-09 3 views
0

나는 이클립스에서 우리의 애플리케이션을 빌드하기 위해 Ant 1.7.1을 사용하고있다. 내 애플리케이션은 WAS 6.1에 배치 될 예정이다. 내 코드에서 sun.security. * 패키지 클래스 및 하위 패키지를 사용하고 있으므로 (이 패키지를 사용하는 것은 좋지만 다른 옵션은 없음)특정 jre jars를 개미 빌드의 써드 파티 jar로 오버라이드하는 방법

WAS에 귀를 배치하면 sun.security.x509.AlgorithmId 클래스에 ClassDefNotFoundError가 발생합니다. 이 클래스가 IBM Jre의 원하는 패키지에 없다는 것을 알았습니다 (Sun 패키지를 사용하지 않는 것이 좋습니다).

필자는 IBM jars를 개발 클래스 패스에 넣어야했고, 이클립스는 내 JRE jars 대신이 jar를 사용했다. 이는 IBM Jars를 Eclipse의 JAR Jars보다 먼저 배치하고 내보내기했다. 이것은 잘 작동합니다.

지금, 제 질문은 ANT에서 항아리의 동일한 순서를 수행하는 방법입니다. 나는 ANT 클래스 패스에서 jar의 순서를 지정하는 방법을 안다. 하지만 IBM JAR을 JRE JAR보다 ANT에 먼저 배치하려면 어떻게해야합니까?

부팅 클래스 경로에 IBM jars를 설정해 보았습니다. 하지만 ANT는 java.lang을 찾을 수 없습니다. Java 클래스 경로가 부트 클래스 경로를 벗어 났기 때문입니다.

   <javac source="1.5" 
      target="1.5" 
      bootclasspathref="project.class.path" 
      destdir = "${build.classes.dir}" 
      srcdir = "${work.dir}/src" 
      debug="true" 
      encoding="UTF-8" 
    > 
    <classpath path="${java.library.path}"/> 

    </javac> 

이 작업을 수행하는 방법을 알려주십시오.

도움이 될 것입니다. 감사합니다

답변

0

나는 이것을위한 해결책을 얻었다. 나는 'javac'작업에 다음과 같이 변경했다 :

 <javac source="1.5" 
       target="1.5" 
       destdir = "${build.classes.dir}" 
       srcdir = "${work.dir}/src" 
       debug="true" 
       encoding="UTF-8" 
     > 
     **<compilerarg value="-Xbootclasspath/p:${toString:project.class.path}"/>** 
    </javac> 

개미 !!

관련 문제