私のアプリケーションは Java 8 以前で正常に動作していますが、Java SE の一部ではないクラスをロードできず、次のように失敗します。
class MyClass (in unnamed module @0x4d14b6c2) cannot access class
sun.tools.attach.HotSpotVirtualMachine (in module jdk.attach) because
module jdk.attach does not export sun.tools.attach to unnamed module
@0x4d14b6c2.
私の最初のアイデアは、アプリケーションをモジュール化し、必要なクラスに依存関係を適切に宣言するパブリック モジュールがあるかどうかを判断することでした。ただし、ダミーを宣言するとすぐに、module-info.java
不平javac
を言い始めました。
modules are not supported in -source 1.6; use -source 9 or higher to enable modules
編集:アプリケーションでサポートする必要があるため、maven-compiler-plugin に Java 6 互換のバイトコードを生成するように指示しています。使用される実際の引数は-g -nowarn -target 1.6 -source 1.6 -encoding UTF-8
.
おそらく私は明らかな何かを見逃していますが、Jigsaw とそれなしの古い Java バージョンで動作する jar を構築するにはどうすればよいですか?