[java][play1]eclipseからの実行でエラー発生

  playframework1

久しぶりにplay1でプログラムを組んでいます。play2がメインストリームなので保守程度にしかメンテされていないようで。。

いつものように play deps して play ec でeclispeプロジェクトへ変換。
eclipseへプロジェクトをインポートし、eclipse/xxx.launch を右クリックして実行したところ、下記のようなエラーが発生しました。

-Djava.endorsed.dirs=C:\Tools\play\play-1.5.3/framework/endorsed is not supported. Endorsed standards and standalone APIs
in modular form will be supported via the concept of upgradeable modules.

ちなみに playは1.5.3、javaはOpenJDKの11.0.9.1を使用しています。

エラーメッセージで検索してみると Apache Tomcat での事例を中心にヒット。
とりあえずそのオプションを消したら動いた、的な感じだったのでそれにならうことにしました。

VM引数から下記の記述部分を削除してみたところ、たしかに解決。

-Djava.endorsed.dirs="C:\Tools\play\play-1.5.3/framework/endorsed"

釈然としませんがJava9以降は不要なオプションのようです。

推奨標準優先メカニズムの削除
java.endorsed.dirsシステム・プロパティおよびlib/endorsedディレクトリは存在しなくなりました。このいずれかが検出された場合、javacコンパイラおよびjava起動ツールは終了します。
JDK 9では、アップグレード可能なモジュールを使用するか、またはJARファイルをクラス・パスに指定します。

Java Platform, Standard Edition Oracle JDK 9移行ガイド, リリース9

っていうか、そもそも play-1.5.3/framework/endorsed なんでフォルダ存在しないですね。

2010年ころのplay1.0系とかでも、このオプションは付いていますが、肝心の /framework/endorsed というフォルダは存在しませんでした。試行錯誤で記述したものの消すタイミングを逸していつまでも残ってしまった系なのかも??とか邪推。

eclipsify用のリソースが置かれている /play-1.5.3/resources/eclipse の、debug.launch と test.launch がテンプレートです。
毎回修正するのが面倒なのでこのファイルを修正するのが良いと思います。

LEAVE A COMMENT