Czy kompilator Java Eclipse jest tylko opakowaniem wokół tego samego rdzenia, na javac
którym jest zawinięty program, czy może jest to osobny kompilator? Jeśli to drugie, dlaczego mieliby wynaleźć koło na nowo?
Czy kompilator Java Eclipse jest tylko opakowaniem wokół tego samego rdzenia, na javac
którym jest zawinięty program, czy może jest to osobny kompilator? Jeśli to drugie, dlaczego mieliby wynaleźć koło na nowo?
Odpowiedzi:
Eclipse zaimplementował własny kompilator o nazwie Eclipse Compiler for Java (ECJ).
Różni się od javaca, kompilatora dostarczanego z Sun JDK. Istotną różnicą jest to, że kompilator Eclipse umożliwia uruchamianie kodu, który nie został właściwie skompilowany. Jeśli blok kodu z błędem nigdy nie zostanie uruchomiony, Twój program będzie działał poprawnie. W przeciwnym razie wygeneruje wyjątek wskazujący, że próbowałeś uruchomić kod, który się nie kompiluje.
Kolejna różnica polega na tym, że kompilator Eclipse pozwala na tworzenie przyrostowych kompilacji z poziomu środowiska IDE Eclipse, to znaczy, że cały kod jest kompilowany, gdy tylko skończysz pisać.
Fakt, że Eclipse ma własny kompilator, jest również oczywisty, ponieważ możesz pisać, kompilować i uruchamiać kod Java w Eclipse bez instalowania nawet Java SDK.
Kilka przykładów, w których ETS jest lepszy niż javac, to:
-proceedOnError
i po prostu nie będzie generować plików .class ze źródła z błędami.
Wszyscy już wyjaśnili, że są inni. Oto kilka różnic w zachowaniach, które zauważyłem między dwoma kompilatorami. Wszystkie sprowadzają się do błędu w (przynajmniej) jednej z implementacji.
Wbudowany kompilator Eclipse jest oparty na kompilatorze Java Jikes firmy IBM . (Zauważ, że Eclipse również zaczęło działać w IBM). Jest całkowicie niezależny od kompilatora Java firmy Sun w JDK; to nie jest opakowanie wokół Słońca javac
.
Jikes istnieje od dawna, był znacznie szybszy niż standardowy kompilator JDK Java (ale nie wiem, czy to nadal prawda). Co do tego, dlaczego IBM chciał napisać własny kompilator Java: może z powodów licencyjnych (mają też własną implementację Java).
Jest to osobny kompilator. Jest to potrzebne, ponieważ javac nie pozwala na kompilację lekko uszkodzonego kodu ze strony eclipse
Przyrostowy kompilator Java. Wdrożony jako konstruktor Eclipse, oparty jest na technologii opracowanej z kompilatora VisualAge for Java. W szczególności pozwala uruchamiać i debugować kod, który nadal zawiera nierozwiązane błędy.