classLoader将在此方案中加载类的顺序

Ash*_*ley 5 java eclipse classloader lombok eclipse-classpath

我添加lombok到我的java项目中eclipse.它要求我在eclipse.ini文件中添加最后两行vmargs.

-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
Run Code Online (Sandbox Code Playgroud)

我还添加lombok.jarlibraries(项目 - >属性 - >库),并lombok.jar在eclipse和JRE系统库(rt.jar,资源中)中的"订单和导出"选项卡(项目 - >属性 - >订单和导出)中移至最顶层.罐子等等都在下面lombok.jar.我对lombok主类的加载顺序感到困惑:

  1. eclipse启动时,Bootstrap类加载器加载应该在JRE的目录下的所有JDK类.(但是由于我已经lombok.jar在Order和Export中向上移动,在JRE系统库之上,将在之后加载rt.jar lombok.jar.大部分都不是吗?因为无论什么东西都应该首先加载bootstrap库!)

  2. 由于我们还重新定义了bootstrap classpath使用-XBootstrapClasspath选项,因此将加载lombok.jar Bootstrap Classloader.

  3. 之后Extensions classloader加载JRE的lib\ext目录中的类.

  4. 然后System-Classpath classloader加载CLASSPATH环境变量指定的所有类和jar(此加载是否考虑了Order and Export库的顺序?)

如果我错误地解释这里的事情,请纠正我,因为我只是新手试图理解ClassLoading迷宫.

Her*_*eri 0

您经常提到“订购和出口”。我假设您指的是项目类路径对话框中相同的命名选项卡。据我所知,这仅涉及依赖于该项目的其他项目的项目库的可见性。它与 eclipse 本身如何引导无关。