View Javadoc

    1   /***************************************************************************************
    2    * Copyright (c) Jonas Bon?r, Alexandre Vasseur. All rights reserved.                 *
    3    * http://aspectwerkz.codehaus.org                                                    *
    4    * ---------------------------------------------------------------------------------- *
    5    * The software in this package is published under the terms of the LGPL license      *
    6    * a copy of which has been included with this distribution in the license.txt file.  *
    7    **************************************************************************************/
    8   package org.codehaus.aspectwerkz.util;
    9
    10  /***
    11   * Detects Java JVM vendor and Java version
    12   * Usage: -jvm | -java
    13   * System.exit code is:
    14   * 2:BEA, 1:IBM, 0:SUN
    15   * MajorMinor (f.e. 15) for Java Major.Minor version or 0
    16   *
    17   * @author <a href="mailto:alex@gnilux.com">Alexandre Vasseur</a>
    18   */
    19  public class EnvironmentDetect {
    20
    21      public static void main(String a[]) {
    22          if (a.length < 1) {
    23              usage();
    24              show();
    25              System.exit(-1);
    26          }
    27          if (a[0].equals("-jvm")) {
    28              String vendor = detectJVM();
    29              if (vendor.indexOf("BEA") >= 0) {
    30                  System.exit(2);
    31              } else if (vendor.indexOf("IBM") >= 0) {
    32                  System.exit(1);
    33              } else {
    34                  System.exit(0);
    35              }
    36          }
    37          if (a[0].equals("-java")) {
    38              String java = detectJava();
    39              if (java.indexOf("1.5") >= 0) {
    40                  System.exit(15);
    41              } else if (java.indexOf("1.4") >= 0) {
    42                  System.exit(14);
    43              } else if (java.indexOf("1.3") >= 0) {
    44                  System.exit(13);
    45              } else {
    46                  System.exit(0);
    47              }
    48          }
    49          if (a.length > 1) {
    50              show();
    51          }
    52      }
    53
    54      public static String detectJVM() {
    55          return System.getProperty("java.vendor").toUpperCase();
    56      }
    57
    58      public static String detectJava() {
    59          return System.getProperty("java.version").toUpperCase();
    60      }
    61
    62      public static void show() {
    63          System.out.println(detectJVM());
    64          System.out.println(detectJava());
    65      }
    66
    67      public static void usage() {
    68          System.out.println("Usage: -jvm | -java");
    69      }
    70  }