[sisyphus] java, tomcat5, alternatives и все-все-все...
Andrew Kornilov
=?iso-8859-1?q?akornilov_=CE=C1_gmail=2Ecom?=
Чт Авг 30 21:23:52 MSD 2007
Привет всем.
1. Уже больше часа пытаюсь понять, как у нас правильно переключать java
через alternatives. Кто-нибудь знает?
2. Вот этот код set_jvm_dirs() из /usr/share/java-utils/java-functions:
=========================================
JAVA_VERSION=
re='\([[:digit:]]\{1,\}\.[[:digit:]]\{1,\}\(\.[[:digit:]]\{1,\}\)*\)'
for opt in -fullversion -version ; do
# Yuck, "grep -o" would be cleaner, but requires GNU grep >= 2.5.
# This could be improved/simplified if sed had non-greedy matching.
JAVA_VERSION=$($JAVACMD $opt 2>&1 | sed -n \
-e '/java \(full \)*version "/s/'$re'/<<<\1>>>/' \
-e '/java \(full \)*version "/s/.*<<<\([^>]\{1,\}\)>>>.*/\1/p')
if [ -n "$JAVA_VERSION" ] ; then
break
fi
done
=========================================
не работает с java-1.7.0 (вывод -version и -fullversion совсем не такой,
как был раньше в java). Соответственно, поломалось всё :)
3. tomcat5 хочет именно java-1.7.0 или что-то из неё, не разбирался
глубоко пока, но при попытке удалить 1.7.0 (и наличии 1.5, 1.6), apt
хочет удалить и сам tomcat5.
4. Как же запустить tomcat5?
=========================================
service tomcat5 start
Starting tomcat5: lock file found but no process running for
pid 25688, continuing
/usr/bin/rebuild-jar-repository: error: JAVAVER_LIBDIR /usr/share/java-
does not exist or is not a directory
/usr/bin/rebuild-jar-repository: error: JAVAVER_LIBDIR /usr/share/java-
does not exist or is not a directory
/usr/bin/rebuild-jar-repository: error: JAVAVER_LIBDIR /usr/share/java-
does not exist or is not a directory
/usr/bin/rebuild-jar-repository: error: JAVAVER_LIBDIR /usr/share/java-
does not exist or is not a directory
=========================================
Даже если вбить в ту функцию явно версию 1.7.0, все равно не работает,
видимо, еще где-то что-то определяет, в логах вот такое:
=========================================
Using CATALINA_BASE: /usr/share/tomcat5
Using CATALINA_HOME: /usr/share/tomcat5
Using CATALINA_TMPDIR: /usr/share/tomcat5/temp
Using JRE_HOME:
java.lang.ClassNotFoundException: org.apache.catalina.startup.Catalina
at java.net.URLClassLoader$1.run(URLClassLoader.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:209)
at java.lang.ClassLoader.loadClass(ClassLoader.java:324)
at java.lang.ClassLoader.loadClass(ClassLoader.java:269)
at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:222)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:410)
=========================================
Похоже, jre_home определить не может.
Такой запутанной системы работы я уже давно не видел, куча функций,
альтернатив, runtime определений. Оно действительно нужно и работает? :-)
Подробная информация о списке рассылки Sisyphus