Package org.apache.tools.ant.util
Class JavaEnvUtils
java.lang.Object
org.apache.tools.ant.util.JavaEnvUtils
public final class JavaEnvUtils
extends java.lang.Object
A set of helper methods related to locating executables or checking
conditions of a given Java installation.
Starting with Java 10 we've stopped adding JAVA_
and VERSION_
attributes for new major version numbers
of the JVM.
- Since:
- Ant 1.5
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
JAVA_1_0
Version constant for Java 1.0static java.lang.String
JAVA_1_1
Version constant for Java 1.1static java.lang.String
JAVA_1_2
Version constant for Java 1.2static java.lang.String
JAVA_1_3
Version constant for Java 1.3static java.lang.String
JAVA_1_4
Version constant for Java 1.4static java.lang.String
JAVA_1_5
Version constant for Java 1.5static java.lang.String
JAVA_1_6
Version constant for Java 1.6static java.lang.String
JAVA_1_7
Version constant for Java 1.7static java.lang.String
JAVA_1_8
Version constant for Java 1.8static java.lang.String
JAVA_1_9
Deprecated.use #JAVA_9 insteadstatic java.lang.String
JAVA_10
Version constant for Java 10static java.lang.String
JAVA_11
Version constant for Java 11static java.lang.String
JAVA_12
Version constant for Java 12static java.lang.String
JAVA_9
Version constant for Java 9static int
VERSION_1_0
Number Version constant for Java 1.0static int
VERSION_1_1
Number Version constant for Java 1.1static int
VERSION_1_2
Number Version constant for Java 1.2static int
VERSION_1_3
Number Version constant for Java 1.3static int
VERSION_1_4
Number Version constant for Java 1.4static int
VERSION_1_5
Number Version constant for Java 1.5static int
VERSION_1_6
Number Version constant for Java 1.6static int
VERSION_1_7
Number Version constant for Java 1.7static int
VERSION_1_8
Number Version constant for Java 1.8static int
VERSION_1_9
Deprecated.use #VERSION_9 insteadstatic int
VERSION_10
Number Version constant for Java 10static int
VERSION_11
Number Version constant for Java 11static int
VERSION_12
Number Version constant for Java 12static int
VERSION_9
Number Version constant for Java 9 -
Method Summary
Modifier and Type Method Description static java.io.File
createVmsJavaOptionFile(java.lang.String[] cmds)
Writes the command into a temporary DCL script and returns the corresponding File object.static java.lang.String
getJavaHome()
Return the value of ${java.home}static java.lang.String
getJavaVersion()
Returns the version of Java this class is running under.static int
getJavaVersionNumber()
Deprecated.use #getParsedJavaVersion insteadstatic java.lang.String
getJdkExecutable(java.lang.String command)
Finds an executable that is part of a JDK installation based on the java.home system property.static java.lang.String
getJreExecutable(java.lang.String command)
Finds an executable that is part of a JRE installation based on the java.home system property.static java.util.Vector<java.lang.String>
getJrePackages()
get a vector of strings of packages built into that platforms runtime jar(s)static java.util.Vector<java.lang.String>
getJrePackageTestCases()
Testing helper method; kept here for unification of changes.static DeweyDecimal
getParsedJavaVersion()
Returns the version of Java this class is running under.static boolean
isApacheHarmony()
Checks whether the current VM is Apache Harmony.static boolean
isAtLeastJavaVersion(java.lang.String version)
Compares the current Java version to the passed in String - assumes the argument is one of the constants defined in this class.static boolean
isClasspathBased()
Checks whether the current Java VM is GNU Classpathstatic boolean
isGij()
Checks whether the current Java VM is the GNU interpreter gij or we are running in a gcj precompiled binary.static boolean
isJavaVersion(java.lang.String version)
Compares the current Java version to the passed in String - assumes the argument is one of the constants defined in this class.static boolean
isKaffe()
Checks whether the current Java VM is Kaffe.
-
Field Details
-
JAVA_1_0
public static final java.lang.String JAVA_1_0Version constant for Java 1.0- See Also:
- Constant Field Values
-
VERSION_1_0
public static final int VERSION_1_0Number Version constant for Java 1.0- See Also:
- Constant Field Values
-
JAVA_1_1
public static final java.lang.String JAVA_1_1Version constant for Java 1.1- See Also:
- Constant Field Values
-
VERSION_1_1
public static final int VERSION_1_1Number Version constant for Java 1.1- See Also:
- Constant Field Values
-
JAVA_1_2
public static final java.lang.String JAVA_1_2Version constant for Java 1.2- See Also:
- Constant Field Values
-
VERSION_1_2
public static final int VERSION_1_2Number Version constant for Java 1.2- See Also:
- Constant Field Values
-
JAVA_1_3
public static final java.lang.String JAVA_1_3Version constant for Java 1.3- See Also:
- Constant Field Values
-
VERSION_1_3
public static final int VERSION_1_3Number Version constant for Java 1.3- See Also:
- Constant Field Values
-
JAVA_1_4
public static final java.lang.String JAVA_1_4Version constant for Java 1.4- See Also:
- Constant Field Values
-
VERSION_1_4
public static final int VERSION_1_4Number Version constant for Java 1.4- See Also:
- Constant Field Values
-
JAVA_1_5
public static final java.lang.String JAVA_1_5Version constant for Java 1.5- See Also:
- Constant Field Values
-
VERSION_1_5
public static final int VERSION_1_5Number Version constant for Java 1.5- See Also:
- Constant Field Values
-
JAVA_1_6
public static final java.lang.String JAVA_1_6Version constant for Java 1.6- See Also:
- Constant Field Values
-
VERSION_1_6
public static final int VERSION_1_6Number Version constant for Java 1.6- See Also:
- Constant Field Values
-
JAVA_1_7
public static final java.lang.String JAVA_1_7Version constant for Java 1.7- See Also:
- Constant Field Values
-
VERSION_1_7
public static final int VERSION_1_7Number Version constant for Java 1.7- See Also:
- Constant Field Values
-
JAVA_1_8
public static final java.lang.String JAVA_1_8Version constant for Java 1.8- See Also:
- Constant Field Values
-
VERSION_1_8
public static final int VERSION_1_8Number Version constant for Java 1.8- See Also:
- Constant Field Values
-
JAVA_1_9
@Deprecated public static final java.lang.String JAVA_1_9Deprecated.use #JAVA_9 insteadVersion constant for Java 1.9- See Also:
- Constant Field Values
-
VERSION_1_9
@Deprecated public static final int VERSION_1_9Deprecated.use #VERSION_9 insteadNumber Version constant for Java 1.9- See Also:
- Constant Field Values
-
JAVA_9
public static final java.lang.String JAVA_9Version constant for Java 9- Since:
- Ant 1.9.8
- See Also:
- Constant Field Values
-
VERSION_9
public static final int VERSION_9Number Version constant for Java 9- Since:
- Ant 1.9.8
- See Also:
- Constant Field Values
-
JAVA_10
public static final java.lang.String JAVA_10Version constant for Java 10- Since:
- Ant 1.10.7
- See Also:
- Constant Field Values
-
VERSION_10
public static final int VERSION_10Number Version constant for Java 10- Since:
- Ant 1.10.7
- See Also:
- Constant Field Values
-
JAVA_11
public static final java.lang.String JAVA_11Version constant for Java 11- Since:
- Ant 1.10.7
- See Also:
- Constant Field Values
-
VERSION_11
public static final int VERSION_11Number Version constant for Java 11- Since:
- Ant 1.10.7
- See Also:
- Constant Field Values
-
JAVA_12
public static final java.lang.String JAVA_12Version constant for Java 12- Since:
- Ant 1.10.7
- See Also:
- Constant Field Values
-
VERSION_12
public static final int VERSION_12Number Version constant for Java 12- Since:
- Ant 1.10.7
- See Also:
- Constant Field Values
-
-
Method Details
-
getJavaVersion
public static java.lang.String getJavaVersion()Returns the version of Java this class is running under.Up until Java 8 Java version numbers were 1.VERSION - e.g. 1.8.x for Java 8, starting with Java 9 it became 9.x.
- Returns:
- the version of Java as a String, e.g. "1.6" or "9"
-
getJavaVersionNumber
@Deprecated public static int getJavaVersionNumber()Deprecated.use #getParsedJavaVersion insteadReturns the version of Java this class is running under.This number can be used for comparisons.
- Returns:
- the version of Java as a number 10x the major/minor, e.g Java1.5 has a value of 15 and Java9 the value 90 - major will be 1 for all versions of Java prior to Java 9, minor will be 0 for all versions of Java starting with Java 9.
-
getParsedJavaVersion
Returns the version of Java this class is running under.This number can be used for comparisons.
- Returns:
- the version of Java as major.minor, e.g Java1.5 has a value of 1.5 and Java9 the value 9 - major will be 1 for all versions of Java prior to Java 9, minor will be 0 for all versions of Java starting with Java 9.
-
isJavaVersion
public static boolean isJavaVersion(java.lang.String version)Compares the current Java version to the passed in String - assumes the argument is one of the constants defined in this class. Note that Ant now requires JDK 1.8+ soJAVA_1_0
throughJAVA_1_7
need no longer be tested for.- Parameters:
version
- the version to check against the current version.- Returns:
- true if the version of Java is the same as the given version.
- Since:
- Ant 1.5
-
isAtLeastJavaVersion
public static boolean isAtLeastJavaVersion(java.lang.String version)Compares the current Java version to the passed in String - assumes the argument is one of the constants defined in this class. Note that Ant now requires JDK 1.8+ soJAVA_1_0
throughJAVA_1_7
need no longer be tested for.- Parameters:
version
- the version to check against the current version.- Returns:
- true if the version of Java is the same or higher than the given version.
- Since:
- Ant 1.7
-
isKaffe
public static boolean isKaffe()Checks whether the current Java VM is Kaffe.- Returns:
- true if the current Java VM is Kaffe.
- Since:
- Ant 1.6.3
- See Also:
- https://github.com/kaffe/kaffe
-
isClasspathBased
public static boolean isClasspathBased()Checks whether the current Java VM is GNU Classpath- Returns:
- true if the version of Java is GNU Classpath
- Since:
- Ant 1.9.1
-
isGij
public static boolean isGij()Checks whether the current Java VM is the GNU interpreter gij or we are running in a gcj precompiled binary.- Returns:
- true if the current Java VM is gcj/gij.
- Since:
- Ant 1.8.2
-
isApacheHarmony
public static boolean isApacheHarmony()Checks whether the current VM is Apache Harmony.- Returns:
- true if the current VM is Apache Harmony.
- Since:
- Ant 1.8.2
-
getJreExecutable
public static java.lang.String getJreExecutable(java.lang.String command)Finds an executable that is part of a JRE installation based on the java.home system property.java
,keytool
,policytool
,orbd
,rmid
,rmiregistry
,servertool
andtnameserv
are JRE executables on Sun based JRE's.You typically find them in
JAVA_HOME/jre/bin
ifJAVA_HOME
points to your JDK installation. JDK < 1.2 has them in the same directory as the JDK executables.- Parameters:
command
- the java executable to find.- Returns:
- the path to the command.
- Since:
- Ant 1.5
-
getJdkExecutable
public static java.lang.String getJdkExecutable(java.lang.String command)Finds an executable that is part of a JDK installation based on the java.home system property.You typically find them in
JAVA_HOME/bin
ifJAVA_HOME
points to your JDK installation.- Parameters:
command
- the java executable to find.- Returns:
- the path to the command.
- Since:
- Ant 1.5
-
getJrePackageTestCases
public static java.util.Vector<java.lang.String> getJrePackageTestCases()Testing helper method; kept here for unification of changes.- Returns:
- a list of test classes depending on the java version.
-
getJrePackages
public static java.util.Vector<java.lang.String> getJrePackages()get a vector of strings of packages built into that platforms runtime jar(s)- Returns:
- list of packages.
-
createVmsJavaOptionFile
public static java.io.File createVmsJavaOptionFile(java.lang.String[] cmds) throws java.io.IOExceptionWrites the command into a temporary DCL script and returns the corresponding File object. It is the job of the caller to delete the file on exit.- Parameters:
cmds
- the command.- Returns:
- the file containing the command.
- Throws:
java.io.IOException
- if there is an error writing to the file.
-
getJavaHome
public static java.lang.String getJavaHome()Return the value of ${java.home}- Returns:
- the java home value.
-