如何保存GTK外观&感觉在Java中使用sudo [英] How to preserve GTK look & feel in Java using sudo

查看:136
本文介绍了如何保存GTK外观&感觉在Java中使用sudo的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

通常,当您需要运行一些Java安装程序时,您只需执行以下操作:

  $ 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆