Catalina.shのデフォルトの「Java.endorsed.dirs」オプションのため、Java 9でTomcatベースのアプリを起動できません。
-Djava.endorsed.dirs=/usr/local/share/Tomcat/endorsed is not supported. Endorsed standards and standalone APIs in modular form will be supported via the concept of upgradeable modules.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
これに対する回避策はありますか?
これを機能させるには、スクリプトbin/catalina.sh
をハックする必要があります。
bin/catalina.sh
には次のような行があります:
exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $Java_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="$Java_ENDORSED_DIRS" -classpath "$CLASSPATH" \
...
いずれの場合も、それらの行の2番目(-Djava.endorsed.dirs
が付いている行)を削除するだけで、ビジネスに戻るはずです。
値が空の場合に-Djava.endorsed.dirs
がJVMに提供されないように、これらのスクリプトを改善することを検討しています(Java 9)を使用している場合に当てはまります)。
UPDATE 2017-11-06
r1810284 はendorsed.dirs
の問題を修正するはずです。この修正がTomcat 7.0.83(または次の7.0.xバージョンが投票に合格するもの)に含まれることを期待してください。
UPDATE 2018-03-07
この修正を含むApache Tomcat 7.0.xの最初の公式リリースはApache Tomcat 7.0.84であり、2018-01-24に安定投票されました。
上記の問題は、Eclipseの以降のリリースで修正されましたが、残念なことにJava10のリリースで再び現れました。ここに私の研究があります:最初、Java10およびEclipse Oxygen 3あなたの質問で言及したのと同じエラーを私に与えました。しかし、Java9をインストールし、Apache Tomcatランタイムサーバーにポイントした時点で、エラーはなくなりました。
-Djava.endorsed.dirs = C:\ Program Files\Apache Software Foundation\Tomcat 9.0\endorsedはサポートされていません。承認された標準およびモジュール形式のスタンドアロンAPIは、アップグレード可能なモジュールの概念を介してサポートされます。
このバグを修正するには、Eclipse Web Tools Platform(WTP)をバージョン3.9.4以降にインストール/更新する必要があります。
[ヘルプ]> [新しいソフトウェアのインストール...]を選択します。次のURLを選択または追加します。 http://download.Eclipse.org/webtools/repository/oxygen Check Web Tools Platform(WTP)3.9.4 [Next]を選択します「指示に従ってください
EclipseでTomcatを再構成します。
私の場合、Tomcatが実行されないという問題に答えるために行ったのは、Tomcat(バージョン7)をより低いJavaバージョン(たとえばJava 8 )。
次に、startup.sh、shutdown.shおよびcatalina.shで、次を追加しました。
export Java_HOME=`/usr/libexec/Java_home -v 1.8`;
この現象は、Java 9より前のJREを使用するTomcatランタイムがあり、そのランタイムでサーバーを作成して実行する場合に発生します。次に、Java 9でサーバーを起動しようとすると、サーバーが以前のJREで実行されたときに、起動構成に「-Djava.endorsed.dirs」引数が追加されます。 Java 9、 "-Djava.endorsed.dirs"引数は、ユーザーがVM引数を追加して保持したため、エラーになります。
修正する最も簡単な方法は、サーバーを再作成することです。サーバービューでサーバーを右クリックして、[開く]を選択することもできます。開いたウィンドウで、「一般」セクションの下部にある「起動構成を開く」リンクをクリックします。開いたダイアログで、[引数]タブに切り替え、[VM引数]セクションで[-Djava.endorsed.dirs]引数を編集して、[OK]をクリックします。これでサーバーを起動できるはずです。