最近在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. SQL 查询某个表被哪些存储过程使用到

    --1.查询某个表被哪些存储过程使用到 : select distinct object_name(id) from syscomments where id in (select object_id ...

  2. [转]解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离

    服务(Service)对于大家来说一定不会陌生,它是Windows 操作系统重要的组成部分.我们可以把服务想像成一种特殊的应用程序,它随系统的“开启-关闭”而“开始-停止”其工作内容,在这期间无需任何 ...

  3. Semaphore tryAcquire release 正确的使用方法

    boolean permit = false; try { permit = semaphore.tryAcquire(1, TimeUnit.SECONDS); if (permit) { Syst ...

  4. android StringBuffer类的使用

    参考 http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.html StringBuffer类和String一样,也用来代表字符串, ...

  5. 全面了解 Linux 服务器 - 3. 查看 Linux 服务器的硬盘使用情况

    1)查看硬盘及分区信息 liuqian@ubuntu:~# fdisk -l ...... ...... Disk /dev/sda: 100 GiB, 107374182400 bytes, 209 ...

  6. Gocd持续部署利器

    http://www.go.cd/documentation/user/current http://www.go.cd/images/home-image1.png Gocd 是ThoughtWor ...

  7. 异常Throwable类

     所有异常类型都是Throwable类的子类,它派生出两个子类 Error和Exception          Error类:表示紧靠程序本身无法恢复的严重错误,如内存溢出,动态链接失败,虚拟机错误 ...

  8. Oracle EBS Java Applet报错:找不到类

    Oracle EBS Home Page可以打开,但是无法打开EBS的Form,查看Java控制台,有错误报出. java控制台报错,如下: Java Plug-in 1.6.0_07 使用 JRE ...

  9. 纸上谈兵:堆(heap)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 堆(heap)又被为优先队列(priority queue).尽管名为优先队列,但 ...

  10. js进度条实现

    1.先设置CSS样式(可自定义) /*#region 进度条 */ .progbar { background-color: #e1e1e1; width:auto; color: #222; hei ...