готовлюсь потихоньку вынести /usr/bin/java из java-common, так как оно конфликтует с jpackage jvm. но сначала, пока не переехали на ant из jpackage, нужно внести изменения в наш /usr/bin/ant, иначе сломается сборка openoffice. сейчас в /usr/bin/ant вызывается просто exec java, вместо $JAVA_BIN или $JAVA_HOME/jre/bin/java. openoffice делает env -i ant, что ломает сборку при удалении нашей обертки /usr/bin/java. воспроизводится так: mv /usr/bin/java /usr/bin/java.save ln -s <java home>/jre/bin/java /usr/bin/java env -i ant #----------------------------------------------------- # кусок из /usr/bin/java, которого не хватает в # /usr/bin/ant : #----------------------------------------------------- # Try to find a JDK/JRE location if JAVA_HOME is not set FindJVM if test -z "$JAVA_BIN"; then echo "$0: cannot find the Java VM executable" >&2 exit 1 fi exec "$JAVA_BIN" <ant args> Steps to Reproduce: 1. 2. 3. mv /usr/bin/java /usr/bin/java.save ln -s <java home>/jre/bin/java /usr/bin/java env -i ant Actual Results: Error: could not find libjava.so Error: could not find Java 2 Runtime Environment. Expected Results: env -i ant Buildfile: build.xml does not exist! Build failed
У меня чего-то не воспроизводится :(
Уточнение: наверно, зависит от вложенности <java_home> если ln -s /usr/lib/j2se1.5-sun/jre/bin/java /usr/bin/java то да, действительно... в java есть мозг. ---------------------------------------------------------- $ hsh-shell --root ~/hasher [root@hasher32 .in]# [root@hasher32 .in]# [root@hasher32 .in]# [root@hasher32 .in]# cd /usr/bin/ [root@hasher32 bin]# [root@hasher32 bin]# l java lrwxrwxrwx 1 root root 37 Feb 22 14:13 java -> /etc/alternatives/links/|usr|bin|java [root@hasher32 bin]# mv java java.save [root@hasher32 bin]# ln -s /usr/lib/j2se1.5-sun/jre/bin/java . [root@hasher32 bin]# env -i ant Java HotSpot(TM) Client VM warning: Can't detect initial thread stack location - find_vma failed Buildfile: build.xml does not exist! Build failed ------------------------------------------------------- я сейчас воспроизвести не могу (Миша песочницу выключил) но там я делал ln -s /usr/lib/jvm/java-1.5.0-sun-1.5.0.11/jre/bin/java и было то что описываю.
Завтра еще посмотрю, когда Миша песочницу даст. а то в самый не вовремя момент выбило .... а jabber у вас есть? ---------------------------------------- (19:27:29) gvy: тыкс... попробуй выбраться из hasher32 (19:27:48) gvy: предстоит переезд на другую железку, интеловский инженерный образец уезжает (19:28:16) viy@altlinux.org/Gaim: ok (19:28:24) gvy: минут через пять получается? (19:28:33) gvy: диски/контейнеры остаются на местах, они наши (19:28:37) viy@altlinux.org/Gaim: уже вышел (19:28:41) gvy: надеюсь, завтра будет up
Все. понял. вот как это воспроизводится на самом свежем сизифе. Sun binary java делает один readlink, а надо итерировать. :( [root@hasher32 links]# cd /etc/alternatives/links/ [root@hasher32 links]# mv /etc/alternatives/links/\|usr\|bin\|java /etc/alternatives/links/\|usr\|bin\|java.save [root@hasher32 links]# ln -s /usr/lib/j2se/jre/bin/java \|usr\|bin\|java [root@hasher32 links]# env -i ant Error: could not find libjava.so Error: could not find Java 2 Runtime Environment. [root@hasher32 links]# Я, в принципе, еще раньше сделал workaround, обертку /usr/bin/java сделал альтернативой на /usr/lib/java-common/java.sh с наибольшим приоритетом, (в java-common-1.3.3) т. е. сейчас openoffice пересобирается. поэтому, чтобы воспроизвести, нужно еще mv \|usr\|bin\|java \|usr\|bin\|java.save но все же желательно пофиксить. Ведь иначе ant без обертки /usr/lib/java-common/java.sh вообще говоря, не работает.
Исправлено в 1.7.0-alt2