久しぶりに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 Platform, Standard Edition Oracle JDK 9移行ガイド, リリース9
java.endorsed.dirsシステム・プロパティおよびlib/endorsedディレクトリは存在しなくなりました。このいずれかが検出された場合、javacコンパイラおよびjava起動ツールは終了します。
JDK 9では、アップグレード可能なモジュールを使用するか、またはJARファイルをクラス・パスに指定します。
っていうか、そもそも play-1.5.3/framework/endorsed
なんでフォルダ存在しないですね。
2010年ころのplay1.0系とかでも、このオプションは付いていますが、肝心の /framework/endorsed
というフォルダは存在しませんでした。試行錯誤で記述したものの消すタイミングを逸していつまでも残ってしまった系なのかも??とか邪推。
eclipsify用のリソースが置かれている /play-1.5.3/resources/eclipse
の、debug.launch と test.launch がテンプレートです。
毎回修正するのが面倒なのでこのファイルを修正するのが良いと思います。