Pergunta

Tenho Java 1.6 e Tomcat 5.5 instalados em meu sistema.

Mas o Tomcat 5.5 acessa o Java 1.5 e, portanto, como resultado, recebo o erro Bad version number in .class file ao executar código java com JSP.

Como posso alterar a versão do Tomcat para Java 1.6?

ATUALIZAR

Tentei mudar a JVM que o tomcat5w.exe está apontando para a versão 1.6 e agora estou fora do Bad version in .class file erro.Mas agora recebo o seguinte erro.

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)

Qual pode ser a causa raiz?

Foi útil?

Solução

Ao abrir catalina.sh / catalina.bat, você pode ver:

Pré-requisitos de variáveis ​​de ambiente

JAVA_HOME Deve apontar para a instalação do Java Development Kit.

Então, defina sua variável de ambiente JAVA_HOME para apontar para Java 6.Certifique-se também JRE_HOME está apontando para o mesmo alvo, se estiver definido.

Atualizar:já que você está no Windows, Veja aqui sobre como gerenciar suas variáveis ​​de ambiente

Outras dicas

Você pode alterar o local JDK ou JRE usando as seguintes etapas:

  1. abra o terminal ou cmd.
  2. vou ao [tomcat-home]\bin diretório.
    ex: c:\tomcat8\bin
  3. Escreva o seguinte comando: Tomcat8W //ES//Tomcat8
  4. abrirá diálogo, selecione o Guia Java (painel superior).
  5. Altere o valor da máquina virtual Java.
  6. clique OK.

Nota:em Apache Tomee mesmos passos, mas etapa 3) O comando deve ser: TomEE //ES

No Eclipse, é muito fácil apontar o Tomcat para uma nova JVM (neste exemplo JRE6). Meu problema era que eu não conseguia encontrar onde fazer isso. Aqui está o truque:

  1. No menu superior do Eclipse ARQUIVO aba para baixo, selecione NOVO, -->Outro
  2. ...no Novo servidor: selecione um assistente Janela, selecione: Servidor-> Servidor... clique PRÓXIMO
  3. . no Novo servidor: defina um novo servidor Janela, selecione Apache> TomCat 7 Server
  4. .. agora clique na linha em azul e sublinhado, intitulado: Configure ambientes de tempo de execução
  5. no Ambientes de tempo de execução do servidor janela,
  6. ..Select Apache, expanda -o (clique na seta para a esquerda), selecione Tomcat v7.0, e clique EDITAR.
  7. você verá uma janela chamada EDITIVE AMBIENTE DE RUNDO DO SERVER: TomCat Server
  8. Nesta tela, há um pulldown rotulado Jres.
  9. Você deve encontrar seu JRE listado como JRE1.6.0.33. Se não usar o JRE instalado botão.
  10. Selecione o JRE desejado. Clique no FINALIZAR botão.
  11. Sair graciosamente, no Servidor: Ambientes de tempo de execução do servidor Janela, clique OK
  12. no Novo servidor: defina um novo servidor Janela, pressione PRÓXIMO
  13. no Novo servidor: adicione e remova Janela, selecione aplicativos e instale -os no servidor.
  14. no Novo servidor: adicione e remova Janela, clique Terminar

Isso é tudo. Interessante, apenas as etapas 7-10 parecem importar e eles mudarão o JRE usado em todos os servidores que você definiu anteriormente para usar o TomCat v7.0. O restante das etapas é apenas porque não consigo encontrar outra maneira de chegar à tela, exceto definindo um novo servidor. Alguém mais sabe de uma maneira mais fácil?

Se você usar os scripts padrão para iniciar o TomCat (ou seja, você não instalou o TomCat como um serviço do Windows), você pode usar o arquivo setenv.bat, para definir sua versão JRE_HOME.

No Windows, crie o arquivo %CATALINA_BASE%\bin\setenv.bat, com conteúdo:

set "JRE_HOME=%ProgramFiles%\Java\jre1.6.0_20"

exit /b 0

E deve ser isso.

Você pode testar isso usando %catalina_base % bin configtest.bat (isenção de responsabilidade: eu só verifiquei isso com uma instalação do TomCat7).

Leitura adicional:

No Linux, o TomCat7 possui um arquivo de configuração localizado em:

/etc/sysconfig/tomcat7

... que é onde as configurações específicas do servidor devem ser feitas. Você pode definir a variável Java_Home Env aqui sem precisar criar um perfil.d/ script.

Isso funcionou para mim.

Existem várias boas respostas aqui, mas eu queria adicionar uma, pois pode ser útil para usuários como eu que têm o Tomcat instalado como um serviço em uma máquina Windows.

Opção 3 aqui: http://www.codejava.net/servers/tomcat/4-ways-to-change-jre-for-tomcat

Basicamente, abra Tomcatw.exe e Point Tomcat para a versão da JVM que você precisa usar e reinicie o serviço. Verifique se seus aplicativos implantados ainda funcionam também.

Teste Abra o termonal ou CMD. Vá para o diretório [Tomcat-Home] bin. Ex: C: tomcat8 bin Escreva o seguinte comando: tomcat8w // es // tomcat8 abrirá a caixa de diálogo, selecione o java tap (top top). Altere o valor da máquina virtual Java.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top