跳至主要内容

Living in Hardy Heron (5)

新大陆


神说,天下的水要聚在一处,使旱地露出来。事就这样成了。
神称旱地为地,称水的聚处为海。神看是好的。
神说,地要发生青草,和结种子的菜蔬,并结果子的树木,各从其类,果子都包着核。事就这样成了。
于是地发生了青草,和结种子的菜蔬,各从其类,并结果子的树木,各从其类,果子都包着核。神看着是好的。
有晚上,有早晨,是第三日。

Eclipse开发平台对于绝大多数Java程序员来说是必不可少的(华丽的忽视JBuilder的拥蹙…… :P)。对于已经安装好了Sun-JDK或是IBM-JDK的筒子而言,这个安装过程简单的可以——下载、解压缩、创建桌面链接(即对应于Windows下的快捷方式)。创建快捷方式只要先在GNOME的目录中新建一个eclipse.desktop文件,然后输入如下内容(这里懒人J的eclipse是解压缩在/opt/eclipse目录中):

[Desktop Entry]
Encoding=UTF-8
Name=Eclipse 3.4
Comment=Eclipse IDE V3.4
Exec=eclipse
Icon=/opt/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=GNOME;Application;Development;
StartupNotify=true


可惜,对于偶的系统(Ubuntu 8.04 AMD64bit)来说,eclipse有一个致命的问题——在运行时会突然莫名地crash!!查了不少帖子之后终于找到了解决方法,貌似是Eclipse在AMD64位平台上必须屏蔽掉一处JDK对于编译器的优化。我dump了crash的log(一般出现在$HOME目录中,名字是类似于hs_err_pidXXXXX.log,这里XXXXX就是刚刚crash掉的eclipse的进程标识数),其中可以找到这样的蛛丝马迹——

Current CompileTask:
C2:2717      org.eclipse.core.internal.dtree.DataTreeNode.forwardDeltaWith([Lorg/eclipse/core/internal/dtree/AbstractDataTreeNode;[Lorg/eclipse/core/internal/dtree/AbstractDataTreeNode;Lorg/eclipse/core/internal/dtree/IComparator;)[Lorg/eclipse/core/internal/dtree/AbstractDataTreeNode; (469 bytes)

简单来说,解决的方法就是在eclipse.ini文件中加入一行“魔法代码”(magic line),而且在加入该指令之后,从console启动eclipse就可以看见如下的log:

-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith

CompilerOracle: exclude org/eclipse/core/internal/dtree/DataTreeNode.forwardDeltaWith
### Excluding compile: static org.eclipse.core.internal.dtree.DataTreeNode::forwardDeltaWith


以下是我的Eclipse配置文件,也是借鉴网络上的帖子看来的,貌似不错,欢迎有需要的筒子参考使用:
 -showsplash
org.eclipse.platform
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx640m
-XX:MaxPermSize=256m
-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled
-XX:+UseParallelGC

    参考文章
  • 1) http://hi.baidu.com/weiqi228/blog/item/d8cca70233d6650a4bfb51df.html
  • 2) http://eclipse.dzone.com/news/what-java-ide-vm-arguments-do-you-use

评论

如果蚕是勤的,蝶是懒的。那么我愿意像蚕一样的工作,像蝶一样的生活。