Ho notato che Java propone classi di aspetto diverso per utenti root e non root. Sto cercando di capire come rendere coerente LAF. Inoltre, è inconsistente anche all'interno di un utente/root: dipende da come user/root visita:Java in Linux: classi di aspetto diverso per root e non root
codice di esempio (compilato e confezionato in 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) {
}
}
}
Scenario 1 registri per macchina (in modalità GUI) come un utente normale
Esempio di output (come utente)
[[email protected] Downloads]$ java -classpath laf.jar laf
com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Esempio di output (commuta radice via su
)
[[email protected] Downloads]# java -classpath ./laf.jar laf
javax.swing.plaf.metal.MetalLookAndFeel
Scenario 2 registri a macchina (in modalità GUI) come root
Esempio di output (come radice)
[[email protected] Downloads]# java -classpath ./laf.jar laf
com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Scenario 3 accede a macchina attraverso SSH come un utente normale (simile come sopra scenario # 1, ma in questo caso - stesso LAF)
Esempio di output (come utente)
[[email protected] Downloads]$ java -classpath laf.jar laf
javax.swing.plaf.metal.MetalLookAndFeel
Esempio di output (commuta radice)
[[email protected] Downloads]# java -classpath ./laf.jar laf
javax.swing.plaf.metal.MetalLookAndFeel
Software ver SION:
[[email protected] 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
[[email protected] Downloads]# cat /etc/redhat-release
Red Hat Enterprise Linux Workstation release 6.7 (Santiago)
Questo potrebbe derivare da una differenza nell'ambiente dell'utente; prova a vedere il risultato di 'env' per diversi scenari, o in Java, usa il risultato di' System.getenv() '. – fge
Puoi verificare, nelle tue varie impostazioni, se hai la variabile 'GNOME_DESKTOP_SESSION_ID' nel tuo ambiente? – RealSkeptic
1) come utente ha detto "this-is-depricated" 2) dopo "su -" come root ha dato l'output vuoto –