문제

그 이유는 길고 지루하지만 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 파일로 추가 할 수 있습니다. 이것은 당신의 문제를 해결해야합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top