org.apache.tools.ant.types

Class CommandlineJava

Implemented Interfaces:
Cloneable

public class CommandlineJava
extends java.lang.Object
implements Cloneable

A representation of a Java command line that is a composite of 2 Commandline. 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

static class
CommandlineJava.SysProperties
Specialized Environment class for System properties

Constructor Summary

CommandlineJava()
constructor uses the VM we are running on now.

Method Summary

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.
Object
clone()
clone the object; clone of all fields in the class
Commandline.Argument
createArgument()
create a new argument to the java program
Path
createBootclasspath(Project p)
Path
createClasspath(Project p)
Commandline.Argument
createVmArgument()
create a new JVM argument
String
describeCommand()
Returns a String that describes the command and arguments suitable for verbose output before a call to Runtime.exec(String[])
String
describeJavaCommand()
Returns 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
String
getClassname()
Path
getClasspath()
get the classpath for the command
String[]
getCommandline()
get the command line to run a java vm.
String
getJar()
Commandline
getJavaCommand()
get the Java command to be used.
CommandlineJava.SysProperties
getSystemProperties()
get the system properties object
Commandline
getVmCommand()
Get the VM command, including memory.
String
getVmversion()
protected boolean
haveBootclasspath(boolean log)
Has the bootclasspath been specified and shall it really be used (build.sysclasspath could be set or the VM may not support it)?
protected boolean
haveClasspath()
Has the classpath been specified and shall it really be used or will build.sysclasspath null it?
void
restoreSystemProperties()
void
setAssertions(Assertions assertions)
add an assertion set to the command
void
setClassname(String classname)
set the classname to execute
void
setJar(String jarpathname)
set a jar file to execute via the -jar option.
void
setMaxmemory(String max)
Specify max memory of the JVM -mx or -Xmx depending on VM version
void
setSystemProperties()
cache current system properties and set them to those in this java command
void
setVm(String vm)
set the executable used to start the new JVM
void
setVmversion(String value)
set the JVM version required
int
size()
Deprecated. please dont use this -it effectively creates the entire command.
String
toString()
get a string description.

Constructor Details

CommandlineJava

public CommandlineJava()
constructor uses the VM we are running on now.

Method Details

addSysproperty

public void addSysproperty(Environment.Variable sysp)
add a system property

Parameters:
sysp - a property to be set in the JVM


addSyspropertyset

public void addSyspropertyset(PropertySet sysp)
add a set of system properties

Parameters:
sysp - a set of properties


clearJavaArgs

public void clearJavaArgs()
Clear out the java arguments.


clone

public Object clone()
clone the object; clone of all fields in the class

Returns:
a CommandlineJava object


createArgument

public Commandline.Argument createArgument()
create a new argument to the java program

Returns:
an argument to be configured


createBootclasspath

public Path createBootclasspath(Project p)

Since:
Ant 1.6


createClasspath

public Path createClasspath(Project p)


createVmArgument

public Commandline.Argument createVmArgument()
create a new JVM argument

Returns:
an argument to be configured


describeCommand

public String describeCommand()
Returns a String that describes the command and arguments suitable for verbose output before a call to Runtime.exec(String[])

Since:
Ant 1.5


describeJavaCommand

public String describeJavaCommand()
Returns a String that describes the java command and arguments for in VM executions.

The class name is the executable in this context.

Since:
Ant 1.5


getActualVMCommand

protected Commandline getActualVMCommand()
Get the VM command parameters, including memory settings

Returns:
the VM command parameters


getAssertions

public Assertions getAssertions()
get the current assertions

Returns:
assertions or null


getBootclasspath

public Path getBootclasspath()
get the boot classpath

Returns:
boot classpath or null


getClassname

public String getClassname()

Returns:
the name of the class to run or null if there is no class.

See Also:
getJar()


getClasspath

public Path getClasspath()
get the classpath for the command

Returns:
the classpath or null


getCommandline

public String[] getCommandline()
get the command line to run a java vm.

Returns:
the list of all arguments necessary to run the vm.


getJar

public String getJar()

Returns:
the pathname of the jar file to run via -jar option or null if there is no jar to run.

See Also:
getClassname()


getJavaCommand

public Commandline getJavaCommand()
get the Java command to be used.

Returns:
the java command -not a clone.


getSystemProperties

public CommandlineJava.SysProperties getSystemProperties()
get the system properties object

Returns:
The system properties object


getVmCommand

public Commandline getVmCommand()
Get the VM command, including memory.

Returns:
A deep clone of the instance's VM command, with memory settings added


getVmversion

public String getVmversion()


haveBootclasspath

protected boolean haveBootclasspath(boolean log)
Has the bootclasspath been specified and shall it 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.

Since:
Ant 1.6


haveClasspath

protected boolean haveClasspath()
Has the classpath been specified and shall it really be used or will build.sysclasspath null it?

Since:
Ant 1.6


restoreSystemProperties

public void restoreSystemProperties()
            throws BuildException

Throws:
BuildException - if Security prevented this operation, or there was no system properties to restore


setAssertions

public void setAssertions(Assertions assertions)
add an assertion set to the command

Parameters:
assertions - assertions to make


setClassname

public void setClassname(String classname)
set the classname to execute

Parameters:
classname - the fully qualified classname.


setJar

public void setJar(String jarpathname)
set a jar file to execute via the -jar option.

Parameters:
jarpathname - the pathname of the jar to execute


setMaxmemory

public void setMaxmemory(String max)
Specify max memory of the JVM -mx or -Xmx depending on VM version


setSystemProperties

public void setSystemProperties()
            throws BuildException
cache current system properties and set them to those in this java command

Throws:
BuildException - if Security prevented this operation


setVm

public void setVm(String vm)
set the executable used to start the new JVM

Parameters:
vm -


setVmversion

public void setVmversion(String value)
set the JVM version required

Parameters:
value -


size

public int size()

Deprecated. please dont use this -it effectively creates the entire command.

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()


toString

public String toString()
get a string description.

Returns:
the command line as a string


Copyright B) 2000-2005 Apache Software Foundation. All Rights Reserved.