Как изменить версию 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.