Tomcatが使用するJavaバージョンを変更する方法は?
質問
Java 1.6とTomcat 5.5がシステムにインストールされています。
しかし、Tomcat 5.5はJava 1.5にアクセスし、結果としてエラーが発生します Bad version number in .class file
JSPでJavaコードを実行している間。
TomcatバージョンをJava 1.6に変更するにはどうすればよいですか?
アップデート
Tomcat5w.exeがバージョン1.6を指していることをJVMを変更しようとしましたが、今は外れています。 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)
根本的な原因は何でしょうか?
解決
Catalina.sh / catalina.batを開くと、次のように表示されます。
環境変数の前提条件
Java_homeは、Java開発キットのインストールを指摘する必要があります。
したがって、環境変数を設定します JAVA_HOME
Java 6を指すには、確認してください JRE_HOME
設定されている場合、同じターゲットを指しています。
更新:Windowsにいるので、 こちらをご覧ください 環境変数を管理する方法
他のヒント
次の手順を使用して、JDKまたはJREの場所を変更できます。
- 開きます ターミナル また CMD.
- に行きます
[tomcat-home]\bin
ディレクトリ。
元:c:\tomcat8\bin
- 次のコマンドを書きます。
Tomcat8W //ES//Tomcat8
- ダイアログを開き、選択します Javaタブ(トップペイン).
- Java仮想マシン値を変更します。
- クリック わかった.
ノート:Apache Tomeeで同じ手順で、しかし ステップ(3) コマンドは次のとおりです。 TomEE //ES
Eclipseでは、Tomcatを新しいJVMに向けることは非常に簡単です(この例JRE6)。私の問題は、どこでやるのかわからなかったことです。これがトリックです:
- Eclipseトップメニュー ファイル プルダウン]タブ、選択します 新着, -->他の
- ...に 新しいサーバー:ウィザードを選択します ウィンドウ、選択: サーバ-> サーバ... クリック 次
- . 。に 新しいサーバー:新しいサーバーを定義します ウィンドウ、選択 Apache> Tomcat 7サーバー
- ..今、青と下線付きの行の行をクリックしてください。 ランタイム環境を構成します
- に サーバーランタイム環境 窓、
- ..選択する アパッチ, 、それを展開します(左の矢印をクリックしてください)、選択します Tomcat v7.0, 、クリックします 編集.
- 窓が呼ばれます サーバーランタイム環境の編集:Tomcatサーバー
- この画面には、ラベルが付けられたプルダウンがあります jres.
- JREがリストされているのを見つける必要があります JRE1.6.0.33. 。使用しない場合 JREをインストールしました ボタン。
- 目的のJREを選択します。クリック 終了 ボタン。
- で優雅に終了します サーバー:サーバーランタイム環境 ウィンドウ、クリックします わかった
- の中に 新しいサーバー:新しいサーバーを定義します 窓、ヒット 次
- の中に 新しいサーバー:追加して削除します ウィンドウ、アプリを選択し、サーバーにインストールします。
- の中に 新しいサーバー:追加して削除します ウィンドウ、クリックします 終了
それで全部です。興味深いことに、ステップ7〜10のみが重要であるように思われ、Tomcat v7.0を使用するために以前に定義されていたすべてのサーバーで使用されたJREを変更します。残りの手順は、新しいサーバーを定義することを除いて、画面に到達する他の方法が見つからないからです。他の誰かがより簡単な方法を知っていますか?
標準スクリプトを使用して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のインストールでのみチェックしました)。
参考文献:
- http://tomcat.apache.org/tomcat-5.5-doc/running.txt - セクション:「高度な構成 - 複数のTomcatインスタンス」
- http://tomcat.apache.org/tomcat-7.0-doc/running.txt - セクション: '(3.4)「setenv」スクリプト(オプション、推奨)を使用する'
Linuxでは、TomCat7には次のような構成ファイルがあります。
/etc/sysconfig/tomcat7
...ここで、サーバー固有の構成を作成する必要があります。 java_home env変数をここで設定して、プロファイルを作成する必要があります。
これは私のために働いた。
ここにはいくつかの良い答えがありますが、TomcatをWindowsマシンにサービスとしてインストールしている私のようなユーザーに役立つかもしれないので、私は追加したかったのです。
オプション3はこちら: http://www.codejava.net/servers/tomcat/4-ways-to-change-jre-for-tomcat
基本的に、Tomcatw.exeとPoint Tomcatを開いて、使用する必要があるJVMのバージョンを開き、サービスを再起動します。展開されたアプリケーションも引き続き機能することを確認してください。
テストターミナルまたはCMDを開きます。 [tomcat-home] binディレクトリに移動します。例:c: tomcat8 bin次のコマンドを書きます:tomcat8w // es // tomcat8はダイアログを開き、Javaタップ(トップタップ)を選択します。 Java仮想マシン値を変更します。