/**************************************************************************************
* Copyright (c) Jonas Bon?r, Alexandre Vasseur. All rights reserved. *
* http://aspectwerkz.codehaus.org *
* ---------------------------------------------------------------------------------- *
* The software in this package is published under the terms of the LGPL license *
* a copy of which has been included with this distribution in the license.txt file. *
**************************************************************************************/
package org.codehaus.aspectwerkz.util;
/**
* Detects Java JVM vendor and Java version
* Usage: -jvm | -java
* System.exit code is:
* 2:BEA, 1:IBM, 0:SUN
* MajorMinor (f.e. 15) for Java Major.Minor version or 0
*
* @author <a href="mailto:alex@gnilux.com">Alexandre Vasseur</a>
*/
public class EnvironmentDetect {
public static void main(String a[]) {
if (a.length < 1) {
usage();
show();
System.exit(-1);
}
if (a[0].equals("-jvm")) {
String vendor = detectJVM();
if (vendor.indexOf("BEA") >= 0) {
System.exit(2);
} else if (vendor.indexOf("IBM") >= 0) {
System.exit(1);
} else {
System.exit(0);
}
}
if (a[0].equals("-java")) {
String java = detectJava();
if (java.indexOf("1.5") >= 0) {
System.exit(15);
} else if (java.indexOf("1.4") >= 0) {
System.exit(14);
} else if (java.indexOf("1.3") >= 0) {
System.exit(13);
} else {
System.exit(0);
}
}
if (a.length > 1) {
show();
}
}
public static String detectJVM() {
return System.getProperty("java.vendor").toUpperCase();
}
public static String detectJava() {
return System.getProperty("java.version").toUpperCase();
}
public static void show() {
System.out.println(detectJVM());
System.out.println(detectJava());
}
public static void usage() {
System.out.println("Usage: -jvm | -java");
}
}