我添加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
我还添加lombok.jar
了libraries
(项目 -> 属性 -> 库),并移到lombok.jar
了 eclipse 和 JRE 系统库(rt.jar,resources. jar 等)都在下面lombok.jar
。我对将lombok
主类加载为的顺序感到困惑:
eclipse
启动时,类Bootstrap
加载器应加载 JRE 目录中的所有 JDK 类。(但由于我lombok.jar
在 JRE 系统库上方的 Order 和 Export 中向上移动,rt.jar 会在之后加载lombok.jar
。大多数情况下不会?因为无论如何都应该首先加载引导库!)由于我们还重新定义了
bootstrap classpath
using -XBootstrapClasspath 选项,因此 lombok.jar 将由Bootstrap Classloader
.之后
Extensions classloader
加载 JRE 的 lib\ext 目录中的类。然后
System-Classpath classloader
加载 CLASSPATH 环境变量指定的所有类和jar(这个加载是否考虑了Order and Export
库的顺序?)
如果我在这里解释错误,请纠正我,因为我只是试图理解 ClassLoading 迷宫的新手。