Package org.apache.tools.ant.types
Class CommandlineJava
java.lang.Object
org.apache.tools.ant.types.CommandlineJava
- All Implemented Interfaces:
java.lang.Cloneable
public class CommandlineJava
extends java.lang.Object
implements java.lang.Cloneable
A representation of a Java command line that is
a composite of 2
Commandline
s. One is used for the
vm/options and one for the classname/arguments. It provides
specific methods for a Java command line.-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CommandlineJava.SysProperties
Specialized Environment class for System properties. -
Constructor Summary
Constructors Constructor Description CommandlineJava()
Constructor uses the VM we are running on now. -
Method Summary
Modifier and Type Method Description void
addSysproperties(CommandlineJava.SysProperties sysp)
Add a set of system properties.void
addSysproperty(Environment.Variable sysp)
Add a system property.void
addSyspropertyset(PropertySet sysp)
Add a set of system properties.void
clearJavaArgs()
Clear out the java arguments.java.lang.Object
clone()
Deep clone the object.Commandline.Argument
createArgument()
Create a new argument to the java program.Path
createBootclasspath(Project p)
Create a boot classpath.Path
createClasspath(Project p)
Create a classpath.Path
createModulepath(Project p)
Create a modulepath.Path
createUpgrademodulepath(Project p)
Create an upgrademodulepath.Commandline.Argument
createVmArgument()
Create a new JVM argument.java.lang.String
describeCommand()
Return a String that describes the command and arguments suitable for verbose output before a call toRuntime.exec(String[])
.java.lang.String
describeJavaCommand()
Return a String that describes the java command and arguments for in-VM executions.protected Commandline
getActualVMCommand()
Get the VM command parameters, including memory settings.Assertions
getAssertions()
Get the current assertions.Path
getBootclasspath()
Get the boot classpath.java.lang.String
getClassname()
Get the name of the class to be run.Path
getClasspath()
Get the classpath for the command.java.lang.String[]
getCommandline()
Get the command line to run a Java vm.java.lang.String
getJar()
Get the name of the jar to be run.Commandline
getJavaCommand()
Get the Java command to be used.java.lang.String
getModule()
Get the name of the module to be run.Path
getModulepath()
Get the modulepath.java.lang.String
getSourceFile()
CommandlineJava.SysProperties
getSystemProperties()
Get the system properties object.Path
getUpgrademodulepath()
Get the upgrademodulepath.Commandline
getVmCommand()
Get the VM command, including memory.java.lang.String
getVmversion()
Get the vm version.protected boolean
haveBootclasspath(boolean log)
Determine whether the bootclasspath has been specified, and whether it shall really be used (build.sysclasspath could be set or the VM may not support it).boolean
haveClasspath()
Determine whether the classpath has been specified, and whether it shall really be used or be nulled by build.sysclasspath.boolean
haveModulepath()
Determine whether the modulepath has been specified.boolean
haveUpgrademodulepath()
Determine whether the upgrademodulepath has been specified.void
restoreSystemProperties()
Restore the cached system properties.void
setAssertions(Assertions assertions)
Add an assertion set to the command.void
setClassname(java.lang.String classname)
Set the classname to execute.void
setCloneVm(boolean cloneVm)
Set whether system properties will be copied to the cloned VM--as well as the bootclasspath unless you have explicitly specified a bootclasspath.void
setJar(java.lang.String jarpathname)
Set a jar file to execute via the -jar option.void
setMaxmemory(java.lang.String max)
Specify max memory of the JVM.void
setModule(java.lang.String module)
Set the module to execute.void
setSourceFile(java.lang.String sourceFile)
Set the source-file, to execute as single file source programs, a feature, available since Java 11.void
setSystemProperties()
Cache current system properties and set them to those in this Java command.void
setVm(java.lang.String vm)
Set the executable used to start the new JVM.void
setVmversion(java.lang.String value)
Set the JVM version required.int
size()
Deprecated.since 1.7.java.lang.String
toString()
Get a string description.
-
Constructor Details
-
CommandlineJava
public CommandlineJava()Constructor uses the VM we are running on now.
-
-
Method Details
-
createArgument
Create a new argument to the java program.- Returns:
- an argument to be configured.
-
createVmArgument
Create a new JVM argument.- Returns:
- an argument to be configured.
-
addSysproperty
Add a system property.- Parameters:
sysp
- a property to be set in the JVM.
-
addSyspropertyset
Add a set of system properties.- Parameters:
sysp
- a set of properties.
-
addSysproperties
Add a set of system properties.- Parameters:
sysp
- a set of properties.- Since:
- Ant 1.6.3
-
setVm
public void setVm(java.lang.String vm)Set the executable used to start the new JVM.- Parameters:
vm
- the executable to use.
-
setVmversion
public void setVmversion(java.lang.String value)Set the JVM version required.- Parameters:
value
- the version required.
-
setCloneVm
public void setCloneVm(boolean cloneVm)Set whether system properties will be copied to the cloned VM--as well as the bootclasspath unless you have explicitly specified a bootclasspath.- Parameters:
cloneVm
- if true copy the system properties.- Since:
- Ant 1.7
-
getAssertions
Get the current assertions.- Returns:
- assertions or null.
-
setAssertions
Add an assertion set to the command.- Parameters:
assertions
- assertions to make.
-
setJar
public void setJar(java.lang.String jarpathname)Set a jar file to execute via the -jar option.- Parameters:
jarpathname
- the pathname of the jar to execute.
-
getJar
public java.lang.String getJar()Get the name of the jar to be run.- Returns:
- the pathname of the jar file to run via -jar option
or
null
if there is no jar to run. - See Also:
getClassname()
-
setClassname
public void setClassname(java.lang.String classname)Set the classname to execute.- Parameters:
classname
- the fully qualified classname.
-
getClassname
public java.lang.String getClassname()Get the name of the class to be run.- Returns:
- the name of the class to run or
null
if there is no class. - See Also:
getJar()
-
setSourceFile
public void setSourceFile(java.lang.String sourceFile)Set the source-file, to execute as single file source programs, a feature, available since Java 11.- Parameters:
sourceFile
- The path to the source file- Since:
- Ant 1.10.5
-
getSourceFile
public java.lang.String getSourceFile()- Returns:
- Returns the source-file to execute, if this command line has
been
configured for single file source program execution
. Else returns null. - Since:
- Ant 1.10.5
-
setModule
public void setModule(java.lang.String module)Set the module to execute.- Parameters:
module
- the module name.- Since:
- 1.9.7
-
getModule
public java.lang.String getModule()Get the name of the module to be run.- Returns:
- the name of the module to run or
null
if there is no module. - Since:
- 1.9.7
- See Also:
getJar()
,getClassname()
-
createClasspath
Create a classpath.- Parameters:
p
- the project to use to create the path.- Returns:
- a path to be configured.
-
createBootclasspath
Create a boot classpath.- Parameters:
p
- the project to use to create the path.- Returns:
- a path to be configured.
- Since:
- Ant 1.6
-
createModulepath
Create a modulepath.- Parameters:
p
- the project to use to create the path.- Returns:
- a path to be configured.
- Since:
- 1.9.7
-
createUpgrademodulepath
Create an upgrademodulepath.- Parameters:
p
- the project to use to create the path.- Returns:
- a path to be configured.
- Since:
- 1.9.7
-
getVmversion
public java.lang.String getVmversion()Get the vm version.- Returns:
- the vm version.
-
getCommandline
public java.lang.String[] getCommandline()Get the command line to run a Java vm.- Returns:
- the list of all arguments necessary to run the vm.
-
setMaxmemory
public void setMaxmemory(java.lang.String max)Specify max memory of the JVM. -mx or -Xmx depending on VM version.- Parameters:
max
- the string to pass to the jvm to specify the max memory.
-
toString
public java.lang.String toString()Get a string description.- Overrides:
toString
in classjava.lang.Object
- Returns:
- the command line as a string.
-
describeCommand
public java.lang.String describeCommand()Return a String that describes the command and arguments suitable for verbose output before a call toRuntime.exec(String[])
.- Returns:
- the description string.
- Since:
- Ant 1.5
-
describeJavaCommand
public java.lang.String describeJavaCommand()Return a String that describes the java command and arguments for in-VM executions.The class name is the executable in this context.
- Returns:
- the description string.
- Since:
- Ant 1.5
-
getActualVMCommand
Get the VM command parameters, including memory settings.- Returns:
- the VM command parameters.
-
size
@Deprecated public int size()Deprecated.since 1.7. Please don't use this, it effectively creates the entire command.Get the size of the java command line. This is a fairly intensive operation, as it has to evaluate the size of many components.- Returns:
- the total number of arguments in the java command line.
- See Also:
getCommandline()
-
getJavaCommand
Get the Java command to be used.- Returns:
- the java command--not a clone.
-
getVmCommand
Get the VM command, including memory.- Returns:
- A deep clone of the instance's VM command, with memory settings added.
-
getClasspath
Get the classpath for the command.- Returns:
- the classpath or null.
-
getBootclasspath
Get the boot classpath.- Returns:
- boot classpath or null.
-
getModulepath
Get the modulepath.- Returns:
- modulepath or null.
- Since:
- 1.9.7
-
getUpgrademodulepath
Get the upgrademodulepath.- Returns:
- upgrademodulepath or null.
- Since:
- 1.9.7
-
setSystemProperties
Cache current system properties and set them to those in this Java command.- Throws:
BuildException
- if Security prevented this operation.
-
restoreSystemProperties
Restore the cached system properties.- Throws:
BuildException
- if Security prevented this operation, or there was no system properties to restore
-
getSystemProperties
Get the system properties object.- Returns:
- The system properties object.
-
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedExceptionDeep clone the object.- Overrides:
clone
in classjava.lang.Object
- Returns:
- a CommandlineJava object.
- Throws:
BuildException
- if anything went wrong.java.lang.CloneNotSupportedException
- never.
-
clearJavaArgs
public void clearJavaArgs()Clear out the java arguments. -
haveClasspath
public boolean haveClasspath()Determine whether the classpath has been specified, and whether it shall really be used or be nulled by build.sysclasspath.- Returns:
- true if the classpath is to be used.
- Since:
- Ant 1.6
-
haveBootclasspath
protected boolean haveBootclasspath(boolean log)Determine whether the bootclasspath has been specified, and whether it shall really be used (build.sysclasspath could be set or the VM may not support it).- Parameters:
log
- whether to log a warning if a bootclasspath has been specified but will be ignored.- Returns:
- true if the bootclasspath is to be used.
- Since:
- Ant 1.6
-
haveModulepath
public boolean haveModulepath()Determine whether the modulepath has been specified.- Returns:
- true if the modulepath is to be used.
- Since:
- 1.9.7
-
haveUpgrademodulepath
public boolean haveUpgrademodulepath()Determine whether the upgrademodulepath has been specified.- Returns:
- true if the upgrademodulepath is to be used.
- Since:
- 1.9.7
-