解决KDE桌面环境下Eclipse崩溃的问题--让Eclipse使用特定的GTK2主题运行
最近在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主题运行的更多相关文章
- KDE桌面环境下konsole,kate等软件无法切换中文输入法
解决方案(arch): 修改/etc/profile,增加以下语句: #fcitxexport XIM_PROGRAM=fcitxexport XIM=fcitxexport GTK_IM_MODUL ...
- 如何在Linux桌面环境下自动启动程序?
大多数Linux桌面环境有各自的图形用户界面(GUI),让用户可以配置针对特定用户的自动启动程序或服务.本文将介绍如何在各种Linux桌面环境下,自动启动某个程序的方法. AD:WOT2014:用户标 ...
- 高并发场景系列(一) 利用redis实现分布式事务锁,解决高并发环境下减库存
原文:http://blog.csdn.net/heyewu4107/article/details/71009712 高并发场景系列(一) 利用redis实现分布式事务锁,解决高并发环境下减库存 问 ...
- 解决Windows x64bit环境下无法使用PLSQL Developer连接到Oracle DB中的问题
本文是原创文章,转载请注明出处: http://blog.csdn.net/msdnchina/article/details/46416455 解决Windows x64bit环境下无法使用PLSQ ...
- jdk1.8源码包下载并导入到开发环境下助推高质量代码(Eclipse、MyEclipse和Scala IDEA for Eclipse皆适用)(图文详解)
不多说,直接上干货! jdk1.8 源码, Linux的同学可以用的上. 由于源码JDK是前版本的超集, 所以1.4, 1.5, 1.6, 1.7都可以用的上. 其实大家安装的jdk路径下,这 ...
- 利用redis实现分布式事务锁,解决高并发环境下库存扣减
利用redis实现分布式事务锁,解决高并发环境下库存扣减 问题描述: 某电商平台,首发一款新品手机,每人限购2台,预计会有10W的并发,在该情况下,如果扣减库存,保证不会超卖 解决方案一 利用数据 ...
- 快速解决Ubuntu/linux 环境下QT生成没有可执行文件(application/x-executable)
快速解决Ubuntu/linux 环境下QT生成没有可执行文件(application/x-executable)(转载) 问题描述 与windows环境下不同,linux选择debug构建时并不 ...
- 在非gnome系桌面环境下运行deepin-wine tim的错误解决
本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/deepin_wine_run_in_not_gnome_desk ...
- Ubuntu18.06 Mate桌面环境下VirtuslBox打开虚拟机“全局菜单”异常退出解决办法
在安装完Ubuntu18.06 Mate桌面环境后在VirtuslBox里打开虚拟机会出现“全局菜单”异常退出问题. 产生上面问题的原因是你的虚拟机可能在 显示= >屏幕= >硬件加速里勾 ...
随机推荐
- unity, 播放循环背景音乐注意事项
循环背景音乐用wav格式,不要用mp3. 参考:http://answers.unity3d.com/questions/343057/how-do-i-make-unity-seamlessly-l ...
- Redis 初
tcl8.6.1 $wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz $tar xzvf tcl8.6.1-src.tar.g ...
- Docker之功能汇总
Docker-给容器做端口映射 基本的命令是 -P(大写) :Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口基本的命令是 -p(小写) :Docker则可以指定要 ...
- win10-golang环境变量设置
安装go 打开环境变量 添加GOPATH 添加到path 检验 在命令指示符下->go version or go env 配置 在F:\GOPATH下放置C:\go\bin->新建pkg ...
- java 集合的使用 (一)
1.使用整型列表 List<int> lstInt=new List<int>(); 结果不对,报的错误是:Syntax error, insert "Dimensi ...
- How to Allow MySQL Client to Connect to Remote MySql
How to Allow MySQL Client to Connect to Remote MySQ By default, MySQL does not allow remote clients ...
- XML与JSON的对比
XML与JSON的对比 1.各自定义 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类 ...
- bootstrap-轮播图
<!-- 1.写一个父级,class为carousel slide:添加滑动的效果 data-interval 图片轮播间隔时间,单位ms data-ride="carousel&qu ...
- JDBC进行批处理
转自 http://mousepc.iteye.com/blog/1131462 业务场景:当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升 ...
- 注册页面JS前台校验
运行效果图: HTML代码: <script> function checkForm(){ //校验用户名 //获得用户名文本框的值 var username=document.getEl ...