Ошибка Java при инициализации класса
10 Dec 2014 | Автор: dd |В процессе установки SSLExplorer в браузере вылезла ошибка:
HTTP ERROR: 500
Unable to compile class for JSP
Generated servlet error:
/root/sslexplorer-1.0.0_RC17/sslexplorer/tmp/org/apache/jsp/WEB_002dINF/jsp/layouts/layout_jsp.java:7: cannot access java.lang.Object
bad class file: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64/jre/lib/rt.jar(java/lang/Object.class)
class file has wrong version 51.0, should be 49.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
public final class layout_jsp extends org.apache.jasper.runtime.HttpJspBase
RequestURI=/selectCertificateSource.do
Проверяем версию Java на стороне сервера:
# javac -version
javac 1.7.0_71
# which java
/usr/bin/java
Ошибка вылезает когда пытаешься запустить класс собранный JDK 1.5 под JDK 1.7.
По началу я откровенно говоря тупанул, пытаясь прописать пути для Java, т.к они были не определены в системе:
# echo $JAVA_HOME
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
# echo ‘export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64′ > /etc/profile.d/jdk.sh
# echo ‘export PATH=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64/bin:$PATH’ >> /etc/profile.d/jdk.sh
# source /etc/profile.d/jdk.sh
# echo $JAVA_HOME
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64/bin/java
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64/bin
но это ничего не дало, тогда покумекав решил сделать финт ушами в виде подмены библиотек пакета, на новые новомодные
# rm -y /usr/local/sslexplorer-1.0.0_RC17/sslexplorer/lib/tools.jar
# cp /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64/lib/tools.jar /usr/local/sslexplorer-1.0.0_RC17/sslexplorer/lib/
после чего все заработало в лёт и установка пошла своим чередом
Ошибка Java при инициализации класса,