Dodałem lombok
do mojego projektu java w eclipse
. Wymagało to dodania dwóch ostatnich wierszy w pliku eclipse.ini
jako vmargs
.Porządek, w którym klasaLoader będzie ładować klasy w tym scenariuszu
-showlocation
-vm
/home/$USER/JavaSE8/jdk1.8/bin/java
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20150204-1316
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms500m
-Xmx2g
-Dorg.eclipse.swt.browser.XULRunnerPath=''
-javaagent:/home/$USER/eclipse/4.4-luna-SR2/lombok.jar
-Xbootclasspath/a:/home/$USER/eclipse/4.4-luna-SR2/lombok.jar
Dodałem także lombok.jar
w libraries
(Project -> Właściwości -> Biblioteki), a także poruszane lombok.jar
do najwyższego poziomu w porządku i karcie Export (Project -> Właściwości -> Zamówienia i eksport) w Eclipse i Biblioteki systemowe JRE (rt.jar, resources.jar itd.) Wszystkie są poniżej lombok.jar
. Jestem mylić o kolejności, w jakiej lombok
Główna klasa zostanie załadowany jako:
Kiedy
eclipse
jest uruchomieniuBootstrap
classloader powinny załadowanie wszystkich klas JDK w katalogu JRE. (Ale odkąd przeniósłlombok.jar
się w porządku i eksport, przede bibliotek systemowych JRE, będzie rt.jar być załadowany polombok.jar
. Głównie Nie? Bo biblioteki bootstrap zawsze powinien być ładowany pierwszy nie wiem co!)Ponieważ również przedefiniowano opcję
bootstrap classpath
przy użyciu opcji -XBootstrapClasspath, plik lombok.jar zostanie załadowany przezBootstrap Classloader
.Po tym
Extensions classloader
ładuje klasy w katalogu lib \ ext środowiska JRE.Następnie
System-Classpath classloader
ładuje wszystkie klasy i słoików określonych przez zmienną środowiskową CLASSPATH (czy to ładowanie uwzględniaOrder and Export
kolejność bibliotek?)
Proszę mnie poprawić, jeśli jestem błędnie interpretując rzeczy tutaj jako że jestem po prostu początkującym, próbującym zrozumieć labirynt ClassLoading.
@kdgregory Czy możesz odpowiedzieć na to pytanie? – Ashley
@Juned Ahsan Czy możesz odpowiedzieć na to pytanie? – Ashley
FYI: Od co najmniej wersji 1.16.4, nie ma już potrzeby dodawania "lombok.jar" do bootclasspath w ogóle. Wystarczy dodać słoik jako agent. –