私はモジュールa、モジュールb、モジュールcの3つのモジュールを持っています。モジュール-aとモジュール-bはブートレイヤーにあります。モジュール-cのレイヤー自分自身を作成します。モジュール-cは、インタフェースがモジュール-a内にあるサービスのJPMS実装を有する。Java 9のモジュールレイヤーを削除するには?
これは、モジュール-bでモジュール-cを含むレイヤーを作成する方法です。
ModuleFinder finder = ModuleFinder.of(moduleCPath);
ModuleLayer parent = ModuleLayer.boot();
Configuration cf = parent.configuration().resolve(finder, ModuleFinder.of(), Set.of("module-c"));
ClassLoader scl = ClassLoader.getSystemClassLoader();
ModuleLayer layer = parent.defineModulesWithOneLoader(cf, scl);
次に、モジュール-bでは、モジュール-cからサービスを呼び出します。サービスの実行が完了した後、私はモジュール-cと新しいレイヤーを作成する必要はありません。 JVMから削除してすべてのリソースを解放するにはどうすればいいですか? layer = null;
を実行すれば十分ですか?
'module-c'を付けずに新しい' ModuleLayer'を作成することはできませんか? – nullpointer
質問を正確に試してみることができますか?その結果はどうでしたか。 – nullpointer
@nullpointer私の質問には、私が何をしているのか、何について質問があるのか、すべての情報があります。あなたが何かを理解していないなら、あなたが理解していないことを言ってください。 –