FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Fedora Development Java

 
 
LinkBack Thread Tools
 
Old 03-20-2012, 10:05 AM
Andrew Hughes
 
Default Ant launcher script

Hi,

We've had IcedTea8 failing for some time on our Fedora build machine:

JAVA_HOME=/notnfs/nighttester/icedtea8-target-testing/bootstrap/jdk1.6.0 ANT_OPTS=-Djava.io.tmpdir='/notnfs/nighttester/icedtea8-target-testing/openjdk.build/langtools/build/ant-tmp' /usr/bin/ant -diagnostics > /notnfs/nighttester/icedtea8-target-testing/openjdk.build/langtools/build/ant-diagnostics.log ;
JAVA_HOME=/notnfs/nighttester/icedtea8-target-testing/bootstrap/jdk1.6.0 ANT_OPTS=-Djava.io.tmpdir='/notnfs/nighttester/icedtea8-target-testing/openjdk.build/langtools/build/ant-tmp' /usr/bin/ant -version >> /notnfs/nighttester/icedtea8-target-testing/openjdk.build/langtools/build/ant-diagnostics.log
Error: Could not find or load main class org.apache.tools.ant.launch.Launcher
Error: Could not find or load main class org.apache.tools.ant.launch.Launcher
make[3]: *** [/notnfs/nighttester/icedtea8-target-testing/openjdk.build/langtools/build/ant-diagnostics.log] Error 1


while it succeeds fine for me locally. I've finally managed to have a quick look at
why this is, motivated by the fact that the 6 builds also broke when we upgraded to F16
(though for a different reason).

It seems the Ant script calls /usr/bin/build-classpath by default which in turn runs
/usr/share/java-utils/java-functions. It is set_jvm_dirs in this which fails as it
can't find /usr/share/java-1.8.0:

$ JAVA_HOME=/notnfs/nighttester/icedtea8-target-testing/bootstrap/jdk1.6.0 ANT_OPTS=-Djava.io.tmpdir='/notnfs/nighttester/icedtea8-target-testing/openjdk.build/langtools/build/ant-tmp' /usr/bin/ant --execdebug -diagnostics
exec "/notnfs/nighttester/icedtea8-target-testing/bootstrap/jdk1.6.0/bin/java" -Djava.io.tmpdir=/notnfs/nighttester/icedtea8-target-testing/openjdk.build/langtools/build/ant-tmp -classpath "/usr/bin/build-classpath: error: JAVAVER_LIBDIR /usr/share/java-1.8.0 does not exist or is not a directory:/notnfs/nighttester/icedtea8-target-testing/bootstrap/jdk1.6.0/lib/tools.jar" -Dant.home="/usr/share/ant" -Dant.library.dir="/usr/share/ant/lib" org.apache.tools.ant.launch.Launcher -cp "" "-diagnostics"
Error: Could not find or load main class org.apache.tools.ant.launch.Launcher

Obviously this doesn't yet exist as there is no system 1.8 install. I don't see
why this is worth causing an error and dropping out of the script. Indeed, if
the following lines are commented out:

# elif [ ! -d "$JAVAVER_LIBDIR" ]; then
# echo "$0: error: JAVAVER_LIBDIR $JAVAVER_LIBDIR does not exist or is not a directory"
# return 1
# elif [ ! -d "$JAVAVER_JNIDIR" ]; then
# echo "$0: error: JAVAVER_JNIDIR $JAVAVER_JNIDIR does not exist or is not a directory"
# return 1

the script works fine and produces the same classpath as for 1.6 or 1.7:

JAVA_HOME=/notnfs/nighttester/icedtea8-target-testing/bootstrap/jdk1.6.0 build-classpath ant ant-launcher jaxp_parser_impl xml-commons-apis
/usr/share/java/ant.jar:/usr/share/java/ant-launcher.jar:/usr/share/java/jaxp_parser_impl.jar:/usr/share/java/xml-commons-apis.jar

So /usr/share/java-${ver} isn't used anyway. java-1.5.0, java-1.6.0 and java-1.7.0 all exist
but are empty.

Given the script will allow the user to set JAVA_HOME, and this can be to a version < 1.5 or > 1.7,
I see no reason why it shouldn't just silently ignore the path if it doesn't exist, rather than
erroring out.

It's possible to workaround this by passing --noconfig to /usr/bin/ant and setting ANT_HOME, but
I don't know what effect this will have on the numerous other ant scripts on other distributions,
not to mention how we work out what to set ANT_HOME to in the first place. Fixing this script
on the problem distro (Fedora) seems like a much simpler solution.

Would this be possible?
--
Andrew

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07

--
java-devel mailing list
java-devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/java-devel
 

Thread Tools




All times are GMT. The time now is 06:07 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org