如何保存GTK外观&感觉在Java中使用sudo [英] How to preserve GTK look & feel in Java using sudo
本文介绍了如何保存GTK外观&感觉在Java中使用sudo的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
$ sudo netbeans-8.1- linux.sh
不幸的是,这会切换您漂亮的本机GTK外观&感觉有些丑陋,默认的Metal主题。
您可以使用此示例类来测试:
// laf.java
import javax.swing.UIManager;
public class laf {
public static void main(java.lang.String [] args){
try {
System.out.println(UIManager.getSystemLookAndFeelClassName ());
} catch(Exception e){
}
}
}
还有一些输出:
$ javac laf.java
$ java laf
com .sun.java.swing.plaf.gtk.GTKLookAndFeel
$ sudo java laf
javax.swing.plaf.metal.MetalLookAndFeel
这是如何使用 sudo
:
Often when you need to run some Java installers, you just do something like this:
$ sudo netbeans-8.1-linux.sh
And unfortunately this switches your nice, native GTK look & feel to some ugly, default Metal theme.
You can test it with this sample class:
// laf.java
import javax.swing.UIManager;
public class laf {
public static void main(java.lang.String[] args) {
try {
System.out.println(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
}
}
}
And some output:
$ javac laf.java
$ java laf
com.sun.java.swing.plaf.gtk.GTKLookAndFeel
$ sudo java laf
javax.swing.plaf.metal.MetalLookAndFeel
This is how it looks using sudo
:
解决方案
To properly fix this behavior, you can add a sudoers file:
vim /etc/sudoers.d/20_keep_java_laf
with contents:
Defaults env_keep+=GNOME_DESKTOP_SESSION_ID
This will be cause UIManager#getSystemLookAndFeelClassName()
to resolve desktop, nice, GTK look & feel.
Now it is fixed:
这篇关于如何保存GTK外观&感觉在Java中使用sudo的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文