web-dev-qa-db-ja.com

Java 9でモジュールを無効にすることは可能ですか?

私はOSGIを使用していますが、これがモジュールを無効にしたい主な理由です。別のモジュールフレームワークは本当に必要ないからです。たとえばコマンドラインオプションを使用してそれを行うことは可能ですか?はいの場合、どのように?

11
Pavel_K

モジュールシステムをオフにするオプションはありません。常にアクティブになります。これは JDK内部APIへのアクセス、Java EEモジュール、分割パッケージ、および他の多くの小さな詳細)への依存関係に影響します 。コードと依存関係は、アプリケーションをJava 9.で実行する場合、これらの移行の課題があります。

ただし、モジュールを作成する必要はありません。完全に無視できますmodule-info.Javaと続けて、すべてのJARをクラスパスに配置します。モジュールシステムは、それらすべてを 名前のないモジュール に静かにバンドルします。これは、最大の互換性のために作成されました。モジュールシステムが存在することに気づくこともありません(前述の課題を克服したと仮定します)。

6
Nicolai

はい、確かにあなたはインタビュー対象者がここで言ったようにできます

Trisha Gee:Java 9とそのすべての光沢のある新機能をJigsawを使用せずに使用できること、つまりJava 9を非常に楽しく使用できることを理解していますコードを移行しないでください。Java 9(たとえば、内部APIを非表示にする))で変更されたいくつかの事項がありますが、理論的には、アプリケーションが最初から正しいことをすべて行っていれば、 Java 9.でコンパイルおよび実行しても問題ありません。

インタビュー全体 を確認しますが、ご覧のとおり、Javaアプリケーションの1つはモジュラーワールド用で、もう1つは非モジュールシステム用です。それが理由ですRed Hatおよび[〜#〜] ibm [〜#〜]が反対票を投じましたJSR 376について ここ と記載されていますが、その後投票します!

Java 9 Module Systemの詳細については、[〜#〜] osgi [〜#〜]見てください ここ

これが役に立てば幸い

3
Anas