Java에서 Ant를 실행할 때 Java_home 설정
문제
그 이유는 길고 지루하지만 Java 1.4 앱에서 Java 1.5 코드를 컴파일하려면 개미 스크립트를 실행해야합니다. 그래도이 오류가 계속됩니다.
BUILD FAILED
build.xml:16: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:\j2sdk1.4.2_16\jre"
내 코드에는 다음과 같습니다.
Project p = new Project();
p.setUserProperty("ant.file", buildFile.getAbsolutePath());
p.setProperty("java.home", "C:\Program Files\Java\jdk1.6.0_04");
p.fireBuildStarted();
p.init();
// so on and so forth
그러나 그것은 그것을 무시합니다. 또한 P.SetUserProperty (문자열, 문자열)를 시도했지만 트릭도하지 않습니다. 별도의 프로세스를 시작하지 않고 수행 할 수있는 방법이 있습니까?
해결책
당신의 buildfile의 Javac 과제는 가지고 있습니까? fork="yes"
? 그렇지 않다면, 그것은 무엇이 무엇이든 상관 없습니다 java.home
속성은 개미는 Javac을 호출하려고 시도 할 것이다 Main
동일한 Java 프로세스의 메소드 오류에서 JDK가 아닌 JRE입니다.
편집하다 설정해보십시오 executable
Javac 작업의 속성으로의 전체 경로 javac
이진 및 추가 compiler="extJavac"
작업에.
다른 팁
백 슬래시가 두 배가되어서는 안됩니까?
p.setProperty("java.home", "C:\\Program Files\\Java\\jdk1.6.0_04");
환경 변수 java_home 및 ant_home을 올바르게 설정 했습니까? 코드를 통해 설정하는 경우 작동해야합니다.
또한 %java_home % bin directory %ant_home % bin이 환경 변수 '경로'에 있는지 확인하십시오.
당신의 문제는 %java_home % bin이 Envt에 존재하지 않는 것 같습니다. 그러나 가변 경로.
이 작업을 수행하는 또 다른 방법은 ClassPath에 'Tools.jar'를 추가하는 것입니다. Javac 컴파일러는이 JAR 안에 포함되어 있습니다.
java -cp $ java_home/lib/tools.jar ...
Javac 옵션은 Tools.jar에서 사용할 수 있습니다. 일식에서 JRE 홈이 JDK를 가리키더라도 모든 시스템 라이브러리는 JDK_HOME JRE LIB를 가리 킵니다. 도구가 없습니다. 도구를 외부 JAR 파일로 추가 할 수 있습니다. 이것은 당신의 문제를 해결해야합니다