2011-07-21 18 views
14

私は文字列機能で新しいJava 7スイッチを使用しようとしています。tomcatコンパイラを変更するには

しかし、Tomcatは協力していません。

tomcatがjava 7で動作していることを確認しましたが、その下にコンパイルされていないようです。

は、私は、JSP、サーブレットエントリ

<init-param> 
     <param-name>compiler</param-name> 
     <param-value>C:/Program Files/Java/jdk1.7.0/bin/javac.exe</param-value> 
    </init-param> 

の下で、web.xmlファイルに以下を追加しましたが、トリックを行うようには見えません。

ヒントをいただければ幸いです。

答えて

11

Tomcat 6を実行していて、同じ問題がありました。

  • (最新のTomcat 7のリリースから撮影することができます)ecj-3.7.2.jartomcat/lib/ecj-3.3.1.jarを置き換える;:当社のソリューションをすることでした
  • は、Tomcat 7をインストールするには、当然のことながら、 tomcat/conf/web.xml

    ... 
    <servlet> 
        <servlet-name>jsp</servlet-name> 
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> 
        <init-param> 
         <param-name>fork</param-name> 
         <param-value>false</param-value> 
        </init-param> 
        <init-param> 
         <param-name>xpoweredBy</param-name> 
         <param-value>false</param-value> 
        </init-param> 
        <init-param>         <!-- this should be added --> 
         <param-name>compilerSourceVM</param-name> 
         <param-value>1.7</param-value> 
        </init-param> 
        <init-param> 
         <param-name>compilerTargetVM</param-name> 
         <param-value>1.7</param-value> 
        </init-param>         <!-- last added line --> 
        <load-on-startup>3</load-on-startup> 
    </servlet> 
    

シンプルな選択肢があるにこれを追加しますが、これはすべての人のためのオプションではないかもしれません。

+0

素晴らしい。 最終的にTomcat 7にアップグレードすることができましたが、あなたのソリューションがそのトリックを済ませたように見えます。 –

+0

これをアプリケーションの 'web.inf'に追加することもできます。 –

-1

compilerSourceVMを1.7または7に設定しましたか? (私はこれが動作するかどうかを知っているとは思えないのではないかと思う)

+0

ジョエル、返信用のおかげで、それはうまくいきませんでした:( 私はcompilerSourceVMとcompilerTargetVMの両方を設定し、1.7と7で試してみましたし、同じ結果を得た –

0

JSPをJava 7でコンパイルし、Java 7でTomcatを実行しないようにします。TomcatはまだJava 7をサポートしていないEclipse Java Compilerを使用します。

編集:私は掘り下げました。 hereのように、組み込みのEclipseコンパイラが使用されています。 Tomcat 7.0.19で配布されるコンパイラは、3.7.1以前ではなくJava 7をサポートするECJ 3.7です。

+0

Michael-O。私はJava 7で*すべての*を実行/コンパイルしようとしています。 私はすでに7でTomcatを実行していますが、コンパイルする機能が不足しています。だから私はデフォルトのコンパイラから離れて移動する方法を探しています。 –

+0

あなたはtomcat usersメーリングリストに連絡するべきです。マーク・トーマスは本当に活躍しています。 –

0

使用されるTomcatのバージョンによると、Tomcatが提供するJSPエンジンは、特定のデフォルトバージョンのJavaを使用してJSPをコンパイルして実行します。

Tomcat 7は1.6バージョン

compilerSourceVMを使用しています - どのようなJDKのバージョンはと 互換性のあるソースファイルがありますか? (デフォルト値:1.6)

compilerTargetVM - 生成されたファイルはどのJDKバージョンに対応していますか? には? (デフォルト値:1.6)

Tomcat 8は1.7バージョン

compilerSourceVMを使用しています - どのようなJDKのバージョンはと 互換性のあるソースファイルがありますか? (デフォルト値:1.7)

compilerTargetVM - 生成されたファイルはどのJDKバージョンに対応していますか? は? (デフォルト値:1。JDKのバージョンがと 互換性のあるソースファイルとは何 - 7)

Tomcat 9は1.8バージョン

compilerSourceVMを使用していますか? (デフォルト値:1.8)

compilerTargetVM - 生成されたファイルはどのJDKバージョンに対応していますか? には? (デフォルト値:1.8)

もちろん、デフォルト値が要件に一致しない場合は、使用するバージョンを変更することができます。

はあなたのグローバル$CATALINA_BASE/conf/web.xmlで 宣言 org.apache.jasper.servlet.JspServletサーブレットの初期化パラメータを変更していることを行うことができます。

<servlet> 
    <servlet-name>jsp</servlet-name> 
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> 
    <init-param> 
     <param-name>fork</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>xpoweredBy</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <load-on-startup>3</load-on-startup> 
</servlet> 
... 

たとえば、両方のJSPファイルのソースとターゲットとして、あなたはこの中で、それを変更する必要があり1.8バージョンを指定するには:

は、例えばTomcatの8分布のweb.xmlは、この方法でのJspServletを定義しました方法:

... 
<servlet> 
    <servlet-name>jsp</servlet-name> 
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> 
    <init-param> 
     <param-name>fork</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>xpoweredBy</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <!-- added params --> 
    <init-param> 
     <param-name>compilerSourceVM</param-name> 
     <param-value>1.8</param-value> 
    </init-param> 
    <init-param> 
     <param-name>compilerTargetVM</param-name> 
     <param-value>1.8</param-value> 
    </init-param> 
    <!-- end added params --> 
    <load-on-startup>3</load-on-startup> 
</servlet> 
... 
関連する問題