All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jdesktop.swingx.util.JVM Maven / Gradle / Ivy

There is a newer version: 1.6.8
Show newest version
/*
 * $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; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy