Как изменить версию Java, используемую TOMCAT?
У меня есть Java 1.6 и Tomcat 5.5, установленные в моей системе.
Но Tomcat 5.5 обращается к Java 1.5 и, следовательно, в результате я получаю ошибку Bad version number in .class file
при выполнении Java-кода с JSP.
Как изменить версию Tomcat на Java 1.6?
UPDATE
Я попытался сменить JVM, что tomcat5w.exe указывает на версию 1.6, и теперь я вышел из Bad version in .class file
. Но теперь я получаю следующую ошибку.
exception
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:498)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause
java.lang.NullPointerException
myfirst.SearchLink.checkURL(SearchLink.java:20)
org.apache.jsp.Test_jsp._jspService(Test_jsp.java:52)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
Что может быть основной причиной?
Ответы
Ответ 1
Когда вы открываете файл catalina.sh/catalina.bat, вы можете видеть:
Предварительные требования переменных среды
JAVA_HOME Должен указать на вашу установку Java Development Kit.
Итак, установите переменную среды JAVA_HOME
, чтобы указать на Java 6. Также убедитесь, что JRE_HOME
указывает на одну и ту же цель, если она установлена.
Обновление: поскольку вы находитесь в Windows, см. здесь, как управлять переменными среды
Ответ 2
Вы можете изменить местоположение JDK или JRE, выполнив следующие шаги:
- откройте терминал или cmd.
- перейдите в каталог
[tomcat-home]\bin
.
ex: c:\tomcat8\bin
- напишите следующее
команда:
Tomcat8W //ES//Tomcat8
- откроется диалоговое окно, выберите вкладку java (верхняя панель).
- измените значение виртуальной машины Java.
- нажмите ОК.
Примечание:
в Apache TomEE аналогичные шаги, но (3) команда должна быть: TomEE //ES
Ответ 3
В Eclipse очень легко указать Tomcat на новую JVM (в этом примере JRE6). Моя проблема заключалась в том, что я не мог найти, где это сделать. Вот трюк:
- В верхнем меню ECLIPSE FILE выберите NEW, → Другое
- ... на новом сервере: выберите "Мастер", выберите Сервер → Сервер... нажмите СЛЕД.
- . в окне "Новый сервер: определение нового сервера" выберите Apache > сервер Tomcat 7
- .. теперь щелкните строку в синем и подчеркнутом названии: Настроить среды выполнения
- в окне среды выполнения сервера,
- .. выберите Apache, разверните его (нажмите на стрелку слева), выберите TOMCAT v7.0 и нажмите ИЗМЕНИТЬ.
- вы увидите окно под названием ОКРУЖАЮЩАЯ СРЕДА РЕДАКТИРОВАНИЯ СЕРВЕР: TOMCAT SERVER
- На этом экране есть раскрывающийся список с надписью JREs.
- Вы должны найти свою JRE, указанную как JRE1.6.0.33. Если не используется кнопка Установленная JRE.
- Выберите желаемую JRE. Нажмите кнопку FINISH.
- Изящно выйдите из окна среды выполнения Server: Server Runtime Environment, нажмите ОК
- в новом сервере: укажите новое окно сервера, нажмите NEXT
- в новом сервере: добавление и удаление окна, выберите приложения и установите их на сервере.
- в новом сервере: добавление и удаление окна, нажмите Готово
Это все. Интересно, что только шаги 7-10 кажутся важными, и они изменят JRE, используемую на всех серверах, которые вы ранее определили, для использования TOMCAT v7.0. Остальные шаги состоят только в том, что я не могу найти другого способа добраться до экрана, кроме как путем определения нового сервера. Кто-нибудь еще знает более простой способ?
Ответ 4
Если вы используете стандартные сценарии для запуска Tomcat (то есть вы не установили Tomcat в качестве службы Windows), вы можете использовать файл setenv.bat, чтобы установить версию JRE_HOME.
В Windows создайте файл %CATALINA_BASE%\bin\setenv.bat
с содержимым:
set "JRE_HOME=%ProgramFiles%\Java\jre1.6.0_20"
exit/b 0
И это должно быть.
Вы можете проверить это, используя% CATALINA_BASE%\bin\configtest.bat (Отказ от ответственности: я проверял это только при установке Tomcat7).
Дальнейшее чтение:
Ответ 5
В Linux Tomcat7 имеет файл конфигурации, расположенный по адресу:
/etc/sysconfig/tomcat7
... в котором должны быть заданы конфигурации сервера. Здесь вы можете установить env-переменную JAVA_HOME без необходимости создания profile.d/ script.
Это сработало для меня.
Ответ 6
Здесь есть несколько хороших ответов, но я хотел добавить его, поскольку он может быть полезен для таких пользователей, как я, у которых Tomcat установлен как служба на компьютере под управлением Windows.
Вариант 3 здесь: http://www.codejava.net/servers/tomcat/4-ways-to-change-jre-for-tomcat
В принципе, откройте tomcatw.exe и укажите Tomcat на версию JVM, которую вам нужно использовать, затем перезапустите службу. Убедитесь, что ваши развернутые приложения все еще работают.
Ответ 7
тест
откройте termenal или cmd.
перейдите в каталог [tomcat-home]\bin.
ex: c:\tomcat8\bin
напишите следующую команду: Tomcat8W//ES//Tomcat8
откроется диалоговое окно, выберите java tap (верхний кран).
измените значение виртуальной машины Java.