2.1.2.
Dynamic commandline example
The following example shows you how to use dynamic commandline feature of the sfx task.
<?xml version="1.0"?>
| <project basedir= "." name= "foo" default= "main" > |
<taskdef classpath= "orangevolt-ant-tasks-1.3.2.jar" resource= "com/orangevolt/tools/ant/taskdefs.properties" /> |
|
<target name= "main" > |
<sfx | archive= "foo.jar" | mode= "win32" | icon=
"images/foo.gif" | execute= "javaw -cp lib; -Djava.ext.dirs=${env:TOMCAT_HOME|c:\tomcat}\common\lib -Ddesktop=${reg:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop} foo.bar" | output= "foo.exe" | /> |
|
<sfx | archive= "foo.jar" | mode= "unix" | execute= "java -cp lib; -Djava.ext.dirs=${env:TOMCAT_HOME|c:\tomcat}\common\lib -Ddesktop=${env:HOME\Desktop} foo.bar" | output= "foo.exe" | />
|
</target> | </project> |
|
The created executable will extract the contents to the temp directory, evaluates the ccommandline string and executes it.
The evaluation replaces ${env:TOMCAT_HOME|c:\tomcat} by the value of enviroment variable TOMCAT_HOME or (if it not exists)
by c:\temp.
On windows:
${reg:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop} will be replaced by
the path of the windows desktop directory or an empty string (if it is not found).
On unix:
${env:HOME\Desktop} will be replaced by the pathof the kde desktop directory or an empty string (if it is not found).