Bar*_*jeu 5 java linux redhat look-and-feel
我注意到Java为root用户和非root用户提出了不同的外观和感觉类.我试图了解如何使LAF保持一致.而且,即使在用户/ root中也不一致:取决于用户/ root登录的方式:
示例代码(已编译和打包laf.jar):
import javax.swing.UIManager;
public class laf {
public static void main(java.lang.String[] args) {
try {
System.out.print(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
方案1以普通用户身份登录到计算机(在GUI模式下)
样本输出(以用户身份)
[xxx@yyy Downloads]$ java -classpath laf.jar laf
com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Run Code Online (Sandbox Code Playgroud)
样本输出(切换到root via su)
[root@yyy Downloads]# java -classpath ./laf.jar laf
javax.swing.plaf.metal.MetalLookAndFeel
Run Code Online (Sandbox Code Playgroud)
方案2以root身份登录到计算机(在GUI模式下)
示例输出(以root身份)
[root@yyy Downloads]# java -classpath ./laf.jar laf
com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Run Code Online (Sandbox Code Playgroud)
场景3作为普通用户通过SSH登录到计算机(类似于上面的场景#1,但在这种情况下 - 相同的LAF)
样本输出(以用户身份)
[xxx@yyy Downloads]$ java -classpath laf.jar laf
javax.swing.plaf.metal.MetalLookAndFeel
Run Code Online (Sandbox Code Playgroud)
示例输出(切换到root)
[root@yyy Downloads]# java -classpath ./laf.jar laf
javax.swing.plaf.metal.MetalLookAndFeel
Run Code Online (Sandbox Code Playgroud)
软件版本:
[root@yyy Downloads]# java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build pxa6470sr9fp10-20150708_01(SR9 FP10))
IBM J9 VM (build 2.6, JRE 1.7.0 Linux amd64-64 Compressed References 20150701_255667 (JIT enabled, AOT enabled)
J9VM - R26_Java726_SR9_20150701_0050_B255667
JIT - tr.r11_20150626_95120.01
GC - R26_Java726_SR9_20150701_0050_B255667_CMPRSS
J9CL - 20150701_255667)
JCL - 20150628_01 based on Oracle jdk7u85-b15
[root@yyy Downloads]# cat /etc/redhat-release
Red Hat Enterprise Linux Workstation release 6.7 (Santiago)
Run Code Online (Sandbox Code Playgroud)
第一行getSystemLookAndFeelClassName是:
public static String getSystemLookAndFeelClassName() {
String systemLAF = AccessController.doPrivileged(
new GetPropertyAction("swing.systemlaf"));
Run Code Online (Sandbox Code Playgroud)
所以可以使用用户的JAVA_OPTS来设置
-Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel
作为默认。
将其添加到.rc用户的 -File 中:
set JAVA_OPTS=-Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel
export JAVA_OPTS
Run Code Online (Sandbox Code Playgroud)
问候
| 归档时间: |
|
| 查看次数: |
879 次 |
| 最近记录: |