最近在Kubuntu14.04上安装Eclipse,由于Ubuntu软件中心中的版本太老(3.8),而且会自动安装OpenJDK,于是到官网下载最新的4.4版。(Luna,代号很有亲切感有木有,女神万岁,暗月万岁,懂的都懂)

问题

Eclipse谈不上什么安装,非要说安装也就是创建一下启动快捷方式吧:

sudo vim /usr/share/applications/eclipse.desktop
内容如下:
[Desktop Entry]
Type=Application
Name=Eclipse
Comment=Eclipse Integrated Development Environment
Icon=/usr/lib/eclipse/icon.xpm
Exec=/usr/lib/eclipse/eclipse
Terminal=false
Categories=Development;IDE;Java;

其实解压下载的压缩包后单击目录下的eclipse文件就能用,但是打开后发现新建项目或者首选项中进行配置的时候会直接崩溃。在终端启动发现问题所在:

原来问题出在GTK主题上。Linux版Eclipse应该是使用的GTK2图形库开发的,KDE默认使用的GTK2主题是oxygen-gtk。oxygen引擎在显示绝大多数GTK程序上是很nice的,但是就是Eclipse出了问题。Eclipse中凡是试图打开调用了gtk的ComboBox控件的窗口都会毫无例外的崩溃,不知道算是oxygen-gtk的bug还是eclipse的bug,反正只能等官方修复。

简单解决方法

解决方法很简单,在系统设置->应用程序外观->GTK项,选择一个非oxygen-gtk的GTK2主题即可。但是KDE默认只自带了一个极为粗糙的Raleigh,简直原始(但是兼容性好),启用这一主题会发现所有的GTK2应用程序都非常难看(包括Eclipse):

当然,网上提供有很多精美的GTK2和GTK3主题(KDE自带下载在线主题功能),完全可以安装一款美化比较完整的主题代替oxygen-gtk主题。

“完美”解决方法

由于oxygen-gtk主题本身比较漂亮,而且KDE桌面环境下所有应用程序默认的主题都是Oxygen,单独为GTK程序使用其他主题显得不够协调。所以,我们还可以采用为某个特定程序使用特定主题的方式折中一下。这里我们以A New Start主题(一款比较精美的GTK主题)为例,以下是具体过程:

系统全局的GTK2和GTK3主题依然使用oxygen-gtk不变。

下载安装A New Start主题:

下载地址:

http://alecive.deviantart.com/art/A-New-Start-1-3-169100684

安装:

1、将下载到的压缩包解压,在其1. GTK2,GTK3,Metacity,Unity,Gnome-shell theme目录下有个名为ANewStart的子目录,将其复制到主文件夹(/home/username/)下的.themes目录下(隐藏目录打开方法:alt+.)。

2、由于A New Start主题依赖murrine这个GTK主题引擎,所以接下来安装murrine引擎:

sudo apt-get install gtk2-engines-murrine

为Eclipse配置A New Start主题:

1、启动需要使用特定主题的GTK2程序的时候使用以下格式的命令:

GTK2_RC_FILES=/path/to/your/theme/gtkrc application-command

如使用A New Start主题启动Eclipse,我的计算机上(用户名为maple)命令如下:

GTK2_RC_FILES=/home/maple/.themes/ANewStart/gtk-2.0/gtkrc /home/maple/eclipse/eclipse

2、当然,你完全可以为这一串命令在bashrc or zshrc or /etc/profile 中设置别名,就像这样:

alias eclipse="GTK2_RC_FILES=/home/maple/.themes/ANewStart/gtk-2.0/gtkrc /home/maple/eclipse/eclipse"

各种启动器上(如上面的Eclipse启动快捷方式)同样可以将启动eclipse的命令设置为GTK2_RC_FILES=/home/maple/.themes/ANewStart/gtk-2.0/gtkrc /home/maple/eclipse/eclipse,反正都是so easy的事情。

至此“完美”解决,下面是使用了A New Start主题的Eclipse的效果,还算协调:

解决KDE桌面环境下Eclipse崩溃的问题--让Eclipse使用特定的GTK2主题运行的更多相关文章

  1. KDE桌面环境下konsole,kate等软件无法切换中文输入法

    解决方案(arch): 修改/etc/profile,增加以下语句: #fcitxexport XIM_PROGRAM=fcitxexport XIM=fcitxexport GTK_IM_MODUL ...

  2. 如何在Linux桌面环境下自动启动程序?

    大多数Linux桌面环境有各自的图形用户界面(GUI),让用户可以配置针对特定用户的自动启动程序或服务.本文将介绍如何在各种Linux桌面环境下,自动启动某个程序的方法. AD:WOT2014:用户标 ...

  3. 高并发场景系列(一) 利用redis实现分布式事务锁,解决高并发环境下减库存

    原文:http://blog.csdn.net/heyewu4107/article/details/71009712 高并发场景系列(一) 利用redis实现分布式事务锁,解决高并发环境下减库存 问 ...

  4. 解决Windows x64bit环境下无法使用PLSQL Developer连接到Oracle DB中的问题

    本文是原创文章,转载请注明出处: http://blog.csdn.net/msdnchina/article/details/46416455 解决Windows x64bit环境下无法使用PLSQ ...

  5. jdk1.8源码包下载并导入到开发环境下助推高质量代码(Eclipse、MyEclipse和Scala IDEA for Eclipse皆适用)(图文详解)

    不多说,直接上干货! jdk1.8 源码, Linux的同学可以用的上. 由于源码JDK是前版本的超集, 所以1.4, 1.5, 1.6, 1.7都可以用的上.     其实大家安装的jdk路径下,这 ...

  6. 利用redis实现分布式事务锁,解决高并发环境下库存扣减

    利用redis实现分布式事务锁,解决高并发环境下库存扣减   问题描述: 某电商平台,首发一款新品手机,每人限购2台,预计会有10W的并发,在该情况下,如果扣减库存,保证不会超卖 解决方案一 利用数据 ...

  7. 快速解决Ubuntu/linux 环境下QT生成没有可执行文件(application/x-executable)

    快速解决Ubuntu/linux 环境下QT生成没有可执行文件(application/x-executable)(转载)   问题描述 与windows环境下不同,linux选择debug构建时并不 ...

  8. 在非gnome系桌面环境下运行deepin-wine tim的错误解决

    本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/deepin_wine_run_in_not_gnome_desk ...

  9. Ubuntu18.06 Mate桌面环境下VirtuslBox打开虚拟机“全局菜单”异常退出解决办法

    在安装完Ubuntu18.06 Mate桌面环境后在VirtuslBox里打开虚拟机会出现“全局菜单”异常退出问题. 产生上面问题的原因是你的虚拟机可能在 显示= >屏幕= >硬件加速里勾 ...

随机推荐

  1. MyEclipse Spring 学习总结一 Spring IOC容器

    一.Spring IOC容器---- Spring AllicationContext容器 程序的结构如下: 1.首先在MyEclipse 创建创建Java Project 2.创建好后,添加spin ...

  2. php发送post包

    class Request{ public static function post($url, $post_data = '', $timeout = 5){//curl $ch = curl_in ...

  3. python学习-day03:整形、字符串常用方法:

    一.数字,int 1.1: a.int(object)转化数字类型: a=' b=int(a) b=b+1000 print(b) 223 <class 'int'> 答案 b.转化二进制 ...

  4. 【转】Cordova文件传输插件fileTransfer

    任务要求: 访问手机的目录,选择一个文件,并使用该插件将指定文件传输到远程主机的某个指定目录中. HTML <!DOCTYPE html> <!-- Licensed to the ...

  5. Spark ML 文本的分类

    最近一直在研究Spark的分类算法,因为我们是做日志文本分类,在官网和各大网站一直没找到相应的Demo,经过1个多月的研究,终于有点成效. val sparkConf = new SparkConf( ...

  6. 字符串,int,十六进制间转换

    public class TypeConvert { . /* 字符串转byte[] 03. 这个方法转换后的结果是会多一些 48字符进来的就是代表的是0不知道为什么,但是可以只是取出指定的字符串就行 ...

  7. win7以管理员身份运行bat提示系统找不到指定的路径。

    windows7“以管理员身份运行”bat提示“系统找不到指定的路径.” 使用批处理安装服务,直接双击运行没有权限,右键“以管理员身份运行”却提示“系统找不到指定的路径.”,反复查看路径是正确的. 打 ...

  8. bootloader制作过程

    主机环境:Ubuntu10.04.4 LTS 使用工具:buildroot-201208 目  标  板:S3C2410 --------------------------------------- ...

  9. oracle连接的三个配置文件(转)

           Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器 ORACLE当中 ...

  10. lintcode-【简单题】快乐数

    题目: 写一个算法来判断一个数是不是"快乐数". 一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是 ...