Hello Peter, First of all your code change is very clean and looks like a simplification. :-)
I have tried on Windows2000 with JDK 1.5 results : ant -f docs.xml -lib c:/opt/velocity\#1.4/velocity-dep-1.4.jar -lib c:/opt/velocity\#1.4/build/lib/jdom-b9.jar java.lang.IllegalArgumentException: URI has a fragment component at java.io.File.<init>(File.java:342) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:494) at org.apache.tools.ant.launch.Locator.fromURI(Locator.java:162) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:267) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:99) I wonder whether the lines 146 to 181 in Locator.java which I copied from a bug report of Jesse are good. Antoine Peter Reilly wrote: > Hi, > Can someone on a windows system check that this works there? > > i.e. the -lib option to ant > > Peter > > > On 4/19/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > >> Author: peterreilly >> Date: Wed Apr 19 03:50:02 2006 >> New Revision: 395206 >> >> URL: http://svn.apache.org/viewcvs?rev=395206&view=rev >> Log: >> escape none URL characters >> >> Modified: >> ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java >> >> Modified: ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java >> URL: >> http://svn.apache.org/viewcvs/ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java?rev=395206&r1=395205&r2=395206&view=diff >> >> ============================================================================== >> --- ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java >> (original) >> +++ ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java Wed >> Apr 19 03:50:02 2006 >> @@ -401,7 +401,20 @@ >> String path = location.getPath(); >> for (int i = 0; i < extensions.length; ++i) { >> if (path.toLowerCase().endsWith(extensions[i])) { >> - urls[0] = location.toURL(); >> + try { >> + /** >> + * File.toURL() does not encode characters like >> #. >> + * File.toURI() has been introduced in java 1.4, >> so >> + * ANT cannot use it (except by reflection) >> + * FileUtils.toURI() cannot be used by >> Locator.java >> + * Implemented this way. >> + * File.toURL() adds file: and changes '\' to '/' >> for dos OSes >> + * encodeUri converts characters like ' ' and '#' >> to %DD >> + */ >> + urls[0] = new URL(encodeUri(location.toURL >> ().toString())); >> + } catch (UnsupportedEncodingException ex) { >> + throw new MalformedURLException(ex.toString()); >> + } >> break; >> } >> } >> @@ -420,7 +433,12 @@ >> }); >> urls = new URL[matches.length]; >> for (int i = 0; i < matches.length; ++i) { >> - urls[i] = matches[i].toURL(); >> + try { >> + // See comments above. >> + urls[i] = new >> URL(encodeUri(matches[i].toURL().toString())); >> + } catch (UnsupportedEncodingException ex) { >> + throw new MalformedURLException(ex.toString()); >> + } >> } >> return urls; >> } >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]