红联Linux门户
Linux帮助

在Ubuntu上,使用SWT嵌入AWT/SWING代码导致Eclipse崩溃问题

发布时间:2015-11-16 15:54:23来源:linux网站作者:imu2008

配置:Ubuntu 13.04 + Eclipse4.3 + JRE 7


现象:打开一个内嵌AWT/SWING代码的Eclipse 视图,Eclipse直接挂掉。


原因:AWT/SWING和SWT都在访问GTK时都使用了锁去保护自己的线程。AWT使用的GTK的锁,但是SWT使用的自己的锁。在使用SWT访问AWT时,就会出错。


解决办法:在使用SWT访问AWT的代码中将以下代码:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 

修改为:

if (Platform.WS_GTK.equals(Platform.getWS())) { 
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); 

else { 
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
}


ubuntu15.04搭建eclipse环境:http://www.linuxdiyf.com/linux/15007.html

Ubuntu15.04下JavaJDK的安装和eclipse的安装:http://www.linuxdiyf.com/linux/12531.html

ubuntu15.04下安装eclipse4.4:http://www.linuxdiyf.com/linux/12322.html

ubuntu15.04安裝hadoop2.6.0及eclipse开发环境配置:http://www.linuxdiyf.com/linux/12474.html

Ubuntu下使用Eclipse和PyDev搭建完美Python开发环境:http://www.linuxdiyf.com/linux/6257.html