Ich habe lombok
zu meinem Java-Projekt in eclipse
hinzugefügt. Ich musste die letzten beiden Zeilen in als vmargs
hinzufügen.Reihenfolge, in der classLoader Klassen in diesem Szenario laden wird
-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
Ich habe auch lombok.jar
in libraries
hinzugefügt (Projekt -> Eigenschaften -> Bibliotheken) und bewegt auch lombok.jar
auf der obersten Ebene in Ordnung und Registerkarte Export (Projekt -> Eigenschaften -> Auftrag und Export) in Eclipse und Die JRE-Systembibliothek (rt.jar, resources.jar usw.) befindet sich unter lombok.jar
. Ich bin verwirrt über die Reihenfolge, in der lombok
Hauptklasse wird als geladen:
Wenn
eclipse
gestartet wird, dieBootstrap
Classloader sollten alle JDK-Klassen im Verzeichnis von JRE laden. (Aber da ichlombok.jar
oben in Ordnung und Export, über JRE Systembibliotheken bewegt habe, wird rt.jar nachlombok.jar
geladen werden. Meistens Nein? Weil Bootstrap-Bibliotheken sollten immer zuerst nicht geladen werden, ganz gleich, was!)Da wir Außerdem wurde
bootstrap classpath
mithilfe der Option -XBootstrapClasspath neu definiert, lombok.jar wird vonBootstrap Classloader
geladen.Danach lädt
Extensions classloader
die Klassen im Verzeichnis lib \ ext der JRE.Dann
System-Classpath classloader
lädt alle Klassen und durch die Umgebungsvariable CLASSPATH angegebenen Gläser (Ist diese Belastung berücksichtigt dieOrder and Export
Reihenfolge der Bibliotheken?)
Bitte korrigieren Sie mich, wenn ich falsch bin Dinge hier zu interpretieren wie ich bin nur Neuling versucht, das ClassLoading Labyrinth zu verstehen.
@kdgregory Können Sie diese Frage bitte beantworten? – Ashley
@Juned Ahsan Können Sie bitte diese Frage beantworten? – Ashley
FYI: Seit mindestens Version 1.16.4 ist es nicht mehr notwendig, dem bootclasspath 'lombok.jar' hinzuzufügen. Sie müssen das Glas nur als Agent hinzufügen. –