Zainstalowałem dwa jdk - jdk 1.5 i jdk 1.8. Mam następujący plik konfiguracyjny Ant build.xml:
<target name="compileCustomSrc">
<javac srcdir="src" destdir="build/classes" source="1.5" target="1.5" >
<classpath>
<fileset dir="C:/lib/">
<include name="*.jar" />
</fileset>
</classpath>
</javac>
</target>
Przed zainstalowaniem jdk1.8 Ant wywołany z Eclipse skompilował wszystkie źródła pomyślnie. Ale teraz mam następujący komunikat o błędzie:
Nie znaleziono klasy: javac1.8
Moje JAVA_HOME i JRE_HOME:
JAVA_HOME = C: \ Program Files (x86) \ Java \ jdk1.5.0_16 JRE_HOME = C: \ Program Files (x86) \ Java \ jre1.5.0_16
i ustaw w Eclipse JRE na 1.5. Czy Java 1.8 ustawia niektóre konfiguracje podczas instalacji?
źródło
-Dbuild.compiler=javac1.7
) działa również po przekazaniu bezpośrednio doant
.W następstwie odpowiedzi Kristiana Holdhusa (oznaczonej jako poprawna) możesz zamiast tego użyć
compiler
atrybutu w zadaniu Ant javac . Ustawieniecompiler="modern"
powinno być zgodne zarówno wstecz (do 1.3), jak i do przodu.Pozwala to uniknąć konieczności ustawiania właściwości Java System o nazwie
build.compiler
. Tylko w przypadku braku jawnego ustawieniacompiler
atrybutu wjavac
zadaniu, Ant użyje wartości atrybutubuild.compiler
jako rezerwy.źródło
[javac] warning: C:\Program Files\Java\jre1.8.0_152\lib\rt.jar(java/net/ConnectException.class): major version 52 is newer than 51, the highest major version supported by this compiler. [javac] It is recommended that the compiler be upgraded.
itp.Miałem ten sam problem. JAVA_HOME i JRE_HOME zostały ustawione poprawnie. Miałem też Ant> 1,9.
To, co zrobiłem, aby to naprawić, to przejść do Eclipse do Window -> Preferences. Rozwiń Ant i wybierz Runtime. Domyślnie należy wybrać zakładkę Classpath, a po prawej stronie znajduje się przycisk „Ant Home”. Kliknij ten przycisk i dwukrotnie sprawdź, czy wskazuje folder Ant.
źródło
JAVA_HOME = C:\Program Files (x86)\Java\jdk1.5.0_16 JRE_HOME = C:\Program Files (x86)\Java\jre1.5.0_16
Twoje JAVA_HOME i JRE_HOME są ustawione na instalację Java 1.5, dlatego pliki binarne 1.8 (jak
javac
) nie zostały znalezione. Ustaw je na instalację Javy 1.8 i powinno być dobrze.źródło
Wypróbowałem to z Eclise i otrzymałem ten sam błąd Nie znaleziono klasy: javac1.8
Sprawdziłem wersję ANT w moim systemie
> anty -wersja
Kiedy próbowałem uruchomić build.xml z wiersza poleceń, zadziałało. Następnie sprawdziłem, że w Eclipse chodziło o starszą wersję ANT.
Po prostu wyedytowałem ścieżkę ANT HOME w Eclipse i również tutaj działało. :)
Poniżej znajduje się obraz, z którego należy edytować ścieżkę ANT w Eclipse.
Teraz zmień stąd ścieżkę ANT Home.
źródło
Zaktualizuj Ant do wersji 1.9.x jako Java 8 w niekompatybilnej wersji Ant starszej niż 1.9
źródło
Wypróbowałem wszystkie inne rozwiązania, ale żadne nie działało. W końcu znalazłem podejście, które działało dla mnie w Eclipse:
ant
oknie.Run As | External Tool Configurations
JRE
karcie wybierzSeparate JRE: Java SE7
lub cokolwiek nazywa się twoja java 7, a następnie naciśnij,Apply
a następnieRun
.Twoje zadanie mrówki zostanie wykonane i zbuduje się poprawnie!
źródło
Zaktualizuj Ant do wersji 1.9.x jako Java 8 w niekompatybilnych wersjach Ant mniejszych niż 1.9 lub po komendzie put -Dbuild.compiler = javac1.7, zobacz poniżej:
ant release -Dbuild.compiler = javac1.7
źródło
możesz pobrać i rozpakować ANT 1.10 w swoim systemie i spróbować zmienić dom ANT w zaćmieniu dla swojego projektu na 1.10. Powinno działać, przeczytaj to, aby uzyskać więcej informacji. http://devops-badal.blogspot.com/2017/02/class-not-found-javac18-issue-while.html
źródło
Czasami problem podczas budowania wojny za pośrednictwem ANT jest również związany z brakiem dopasowania wersji Java w plikach build.properties, ponieważ build.XML próbuje użyć wersji Java wspomnianej we właściwości build.compiler
sprawdź, czy właściwość build.compiler jest taka sama, jak zamierzona wersja Java.
źródło
Możesz pobrać nowszą wersję eclipse, która zawiera nowszą wersję Ant w katalogu wtyczek. Następnie skopiuj jar Ant do starszego katalogu wtyczek eclipse. Eclipse automatycznie wskaże nowszą wersję Ant. To zadziałało dla starszego Keplera z nowszym Mars2.
źródło
Miałem ten sam problem. Udało mi się to rozwiązać w pliku build.xml, ustawiając właściwość.
<property "build.compiler=javac1.7">
źródło