示例代码(在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) { } }}
方案1以普通用户身份登录到计算机(在GUI模式下)
样本输出(以用户身份)
[xxx@yyy Downloads]$java -classpath laf.jar lafcom.sun.java.swing.plaf.gtk.GTKLookAndFeel
样本输出(通过su切换到root)
[root@yyy Downloads]# java -classpath ./laf.jar lafjavax.swing.plaf.Metal.MetalLookAndFeel
方案2以root身份登录到计算机(在GUI模式下)
示例输出(以root身份)
[root@yyy Downloads]# java -classpath ./laf.jar lafcom.sun.java.swing.plaf.gtk.GTKLookAndFeel
场景3作为普通用户通过SSH登录到计算机(类似于上面的场景#1,但在这种情况下 – 相同的LAF)
样本输出(以用户身份)
[xxx@yyy Downloads]$java -classpath laf.jar lafjavax.swing.plaf.Metal.MetalLookAndFeel
示例输出(切换到root)
[root@yyy Downloads]# java -classpath ./laf.jar lafjavax.swing.plaf.Metal.MetalLookAndFeel
软件版本:
[root@yyy Downloads]# java -versionjava 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_B255667JIT - tr.r11_20150626_95120.01GC - R26_Java726_SR9_20150701_0050_B255667_CMPRSSJ9CL - 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)解决方法 getSystemLookAndFeelClassname的第一行是:
public static String getSystemLookAndFeelClassname() { String systemLAF = AccessController.doPrivileged( new GetPropertyAction("swing.systemlaf"));
因此您可以使用用户的JAVA_OPTS进行设置
-Dswing.systemlaf = javax.swing.plaf.Metal.MetalLookAndFeel中
默认情况下.
将其添加到用户的.rc-file:
set JAVA_OPTS=-Dswing.systemlaf=javax.swing.plaf.Metal.MetalLookAndFeelexport JAVA_OPTS
问候
总结以上是内存溢出为你收集整理的Linux中的Java – root和non-root的不同外观类全部内容,希望文章能够帮你解决Linux中的Java – root和non-root的不同外观类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)