org.jdesktop.swingx.util.JVM Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of swingx-all Show documentation
Show all versions of swingx-all Show documentation
A Maven project to aggregate all modules into a single artifact.
/*
* $Id$
*
* Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
* Santa Clara, California 95054, U.S.A. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
package org.jdesktop.swingx.util;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
/**
* Deals with the different version of the Java Virtual Machine.
*/
@SuppressWarnings("nls")
public class JVM {
public final static int JDK1_0 = 1000;
public final static int JDK1_1 = 1100;
public final static int JDK1_2 = 1200;
public final static int JDK1_3 = 1300;
public final static int JDK1_4 = 1400;
public final static int JDK1_5 = 1500;
public final static int JDK1_6 = 1600;
public final static int JDK1_6N = 1610;
public final static int JDK1_7 = 1700;
public final static int JDK1_8 = 1800;
public final static int JDK1_9 = 1900;
private static JVM current;
static {
current = new JVM();
}
/**
* @return the current JVM object
*/
public static JVM current() {
return current;
}
private int jdkVersion;
/**
* Creates a new JVM data from the java.version
* System property
*
*/
public JVM() {
this(System.getProperty("java.version"));
}
/**
* Constructor for the OS object
*/
public JVM(String p_JavaVersion) {
if(!p_JavaVersion.startsWith("1.")) {
// if the java version is higher than JDK 8 the version string does not start with 1. anymore
// we assume here we encountered a JDK 9
jdkVersion = JDK1_9;
} else if(p_JavaVersion.startsWith("1.8.")) {
jdkVersion = JDK1_8;
} else if (p_JavaVersion.startsWith("1.7.")) {
jdkVersion = JDK1_7;
} else if (p_JavaVersion.startsWith("1.6.")) {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel".equals(info.getClassName())) {
jdkVersion = JDK1_6N;
break;
}
}
jdkVersion = jdkVersion == 0 ? JDK1_6 : jdkVersion;
} else if (p_JavaVersion.startsWith("1.5.")) {
jdkVersion = JDK1_5;
} else if (p_JavaVersion.startsWith("1.4.")) {
jdkVersion = JDK1_4;
} else if (p_JavaVersion.startsWith("1.3.")) {
jdkVersion = JDK1_3;
} else if (p_JavaVersion.startsWith("1.2.")) {
jdkVersion = JDK1_2;
} else if (p_JavaVersion.startsWith("1.1.")) {
jdkVersion = JDK1_1;
} else if (p_JavaVersion.startsWith("1.0.")) {
jdkVersion = JDK1_0;
} else {
// unknown version, assume 1.3
jdkVersion = JDK1_3;
}
}
public boolean isOrLater(int p_Version) {
return jdkVersion >= p_Version;
}
public boolean isOneDotOne() {
return jdkVersion == JDK1_1;
}
public boolean isOneDotTwo() {
return jdkVersion == JDK1_2;
}
public boolean isOneDotThree() {
return jdkVersion == JDK1_3;
}
public boolean isOneDotFour() {
return jdkVersion == JDK1_4;
}
public boolean isOneDotFive() {
return jdkVersion == JDK1_5;
}
public boolean isOneDotSix() {
return jdkVersion == JDK1_6 || isOneDotSixUpdateN();
}
/**
* Determines if the version of JDK1_6 has Nimbus Look and Feel installed.
*
* @return {@code true} if Nimbus is available and the version is 1.6;
* {@code false} otherwise
*/
public boolean isOneDotSixUpdateN() {
return jdkVersion == JDK1_6N;
}
public boolean isOneDotSeven() {
return jdkVersion == JDK1_7;
}
public boolean isOneDotEight() {
return jdkVersion == JDK1_8;
}
}