You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Cyril Sagan <Cy...@sas.com> on 2004/01/24 02:15:01 UTC

Why did the ant.bat wrapper change in 1.6?

I'm experimenting with migration to Ant 1.6.

It seems that the ant.bat wrapper has changed.  Now it only works
if I set CLASSPATH in the invoking environment.  Can anyone help?

What happened to the "add %ANT_HOME%\lib\*.jar" semantics of the
1.5.x ant.bat wrapper?

---------------------------------------------------------------
C:\>set PATH=%ANT_HOME%\bin

C:\>ant -version
java.lang.ClassNotFoundException: org.apache.tools.ant.Main
	at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
	at org.apache.tools.ant.launch.Launcher.run(Launcher.java:213)
	at org.apache.tools.ant.launch.Launcher.main(Launcher.java:90)

C:\>set CLASSPATH=%ANT_HOME%\lib\ant.jar;%ANT_HOME%\ant-launcher.jar

C:\>ant -version
Apache Ant version 1.6.0 compiled on December 18 2003
---------------------------------------------------------------

What's the "right" way to run Ant 1.6 from a windows client?

Thanks.

--Cyril Sagan


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: Why did the ant.bat wrapper change in 1.6?

Posted by Conor MacNeill <co...@cortexebusiness.com.au>.
On Sat, 24 Jan 2004 12:15 pm, Cyril Sagan wrote:
> I'm experimenting with migration to Ant 1.6.
>
> It seems that the ant.bat wrapper has changed.  Now it only works
> if I set CLASSPATH in the invoking environment.  Can anyone help?
>
> What happened to the "add %ANT_HOME%\lib\*.jar" semantics of the
> 1.5.x ant.bat wrapper?
>

There are two reasons the wrapper was changed. 

1. To get code from troublesome, os-specific scripts which sometimes worked 
into Java where it could be more easily managed. If you've tried to work on 
ant.bat across Win2k, Win98, WinME and 4Dos, you'd understand why this is an 
improvment. There are some issues with this transition but mostly it should 
work.

2. To address a paricular bug on Windows systems 
(http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11429). This bug was 
likely to strike many more people in Ant 1.6 due to the much greater number 
of ant jars resulting from the breakup of optional.jar.

The new launcher also removes the need for lcp.bat which had some issues with 
spaces in directory names.

The first step in debugging such issues is to turn on echo in ant.bat and see 
what command line is actually being used to start Ant's launch code. The next 
is to confirm the directory layout is as expected, etc.

To debug further, I'd want to see the echo output, as well as the following

value %ANT_HOME%
dir listing of %ANT_HOME% and %ANT_HOME%\lib

I use the new launcher code on Win2k all the time without issue.

Cheers
Conor




---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: Why did the ant.bat wrapper change in 1.6?

Posted by Antoine Lévy-Lambert <an...@antbuild.com>.
Cyril Sagan wrote:

>I'm experimenting with migration to Ant 1.6.
>
>It seems that the ant.bat wrapper has changed.  Now it only works
>if I set CLASSPATH in the invoking environment.  Can anyone help?
>
>What happened to the "add %ANT_HOME%\lib\*.jar" semantics of the
>1.5.x ant.bat wrapper?
>
>---------------------------------------------------------------
>C:\>set PATH=%ANT_HOME%\bin
>
>C:\>ant -version
>java.lang.ClassNotFoundException: org.apache.tools.ant.Main
>	at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
>	at java.security.AccessController.doPrivileged(Native Method)
>	at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
>	at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
>	at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
>	at org.apache.tools.ant.launch.Launcher.run(Launcher.java:213)
>	at org.apache.tools.ant.launch.Launcher.main(Launcher.java:90)
>
>C:\>set CLASSPATH=%ANT_HOME%\lib\ant.jar;%ANT_HOME%\ant-launcher.jar
>
>C:\>ant -version
>Apache Ant version 1.6.0 compiled on December 18 2003
>---------------------------------------------------------------
>
>What's the "right" way to run Ant 1.6 from a windows client?
>
>Thanks.
>
>--Cyril Sagan
>
>
>
>  
>
Hi Cyril,

- my advice is to run ant without having the CLASSPATH environment 
variable set.
Set the ANT_HOME and the JAVA_HOME environment variables, and make sure 
that %ANT_HOME%\bin and %JAVA_HOME%\bin are in the path.

- I am not sure where your problem come from; can it be that you have a 
mixture of 2 different ant versions ?

- by the way, if you installed ant 1.6 over ant 1.5, make sure that the 
file $ANT_HOME/lib/optional.jar which exists in ant < 1.6 gets deleted.
Its equivalent in ant 1.6 are all the ant-*.jar, except the file 
ant-launcher.jar which contains the start up classes.

- make sure that the ant script which you are starting is really the one 
of ant 1.6, which is hitting a Launcher class, not Main.

Cheers,

Antoine



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org