JPMS: Java プラットフォーム モジュール システム

PHPz
リリース: 2023-09-24 17:05:07
転載
1171 人が閲覧しました

JPMS は Java Platform Module System の略です。これは Java 9 の新機能です。 Java アプリケーションと Java パッケージは、Java モジュール システムを利用して Java モジュールにパッケージ化できます。 Java モジュールを使用すると、モジュールのどのパッケージと他の Java モジュールがそれを認識できるかを指定できます。 「Java モジュール」には、その実行に必要な Java モジュールもリストされています。

Java プラットフォーム システムは、Java ジグソーまたはプロジェクト ジグソーとも呼ばれます。ジグソーという名前は開発時に使用されました。これを開発する主な目的は、JRE をよりモジュール化することです。 JPMS は、クラスパス/JAR ヘル、大規模な単一 JDK、バージョンの競合、セキュリティの問題など、いくつかの主要な問題を解決します。

ここで、Java プラットフォームのモジュラー システムについてさらに詳しく調べてみましょう。

なぜ Java にはモジュールが必要なのでしょうか?

JPMS は SE (Standard Edition) の機能であり、Java のすべてのレベルに影響を与えるということを覚えておくことが重要です。それにもかかわらず、このパッチの目的は、Java 8 から Java 9 に切り替えるときに、ほとんどのプログラムを変更せずに実行できるようにすることです。その主な目的は、モジュールの外部ユーザーから一部のコンポーネントを隠しながら、モジュールに表示される関連パッケージを収集することです。

JPMS は次の目標を掲げて立ち上げられました -

  • 大規模なアプリケーションとライブラリを簡単に整理します。

  • セキュリティの向上

  • アプリケーションのパフォーマンスを向上させる

  • 小型デバイスを管理するためのプラットフォーム障害。

  • 構造を改善します。

クラスパスとモジュールパス

これまで、クラスパスは、Java で実行するときにプログラムがアクセスできるものを決定する主な要素でした。この役割を果たし、明確に理解されているにも関わらず、クラスパスは最終的にはすべての依存関係が接続された 1 つの大きな未分化なバケツになります。

モジュール パスはクラスパスの 1 レベル上に追加されます。これはパッケージの保管スペースとして機能し、アプリケーションがアクセスできるパッケージを選択します。

は必要ありません は必要ですか? がない場合にのみ有効です。 がなくても動作します。

クラスパス

モジュールパス

すべての Java バージョンに適用されます

Java 9 以降にのみ適用可能

module-info.java

module-info.java

ライブラリの追加は、プロジェクトに module-info.java

ライブラリは module-info.java

非モジュラー ライブラリのみを追加します

モジュール式と非モジュール式の両方を追加できます

弱いカプセル化と抽象化

強力なカプセル化と抽象化

弱いモジュール性

非常にモジュール化された

ライブラリの一部をクラスパスに追加してプロジェクトにライブラリを追加することはできません

ライブラリの必要な部分をプロジェクトに追加するには、ライブラリをモジュール パスに追加する必要があります。

JAVAのモジュール

JDK はモジュールで構成されています。システムで JDK を使用している場合は、ソース コードも入手できます。これを知らなかった場合は、これを確認して詳細を学んでください。

JDK インストール ディレクトリには /lib ディレクトリがあります。このディレクトリには src.zip ファイルがあります。次に、それを /src ディレクトリに抽出します。その後、/src ディレクトリを調べて /java.base ディレクトリを見つけ、次に module-info.java ファイルを見つけて、最後にそれを開きます。

上部の Javadoc コメントの後に、modulesection.base というフォルダーがあり、その後にエクスポート行が続きます。この形式は少し難解なので、あまり深くは説明しません。

ご覧のとおり、java.base モジュールは、java.io を含むいくつかのよく知られた Java パッケージをエクスポートします。これが、パッケージを収集するモジュールの動作方法です。

JPMS:Java 平台模块系统

ディレクティブの要件は、export の要件とは逆です。したがって、指定されたモジュールにはモジュールが必要な場合があります。モジュールに対して Java コンパイラを実行するときにクラスパスを指定するのと同じ方法で、モジュール パスを指定します。これにより、依存関係を解決できるようになります。

下位互換性

Java 9 は下位互換性を念頭に置いて作成されました。ただし、新しいモジュール構造は大きな変化であり、特に大規模なコードベースでは問題が発生する可能性があります。

次のコマンドは、コードベースに起因する問題のトラブルシューティングに役立つ場合があります。コマンド jdeps がクラスを指す場合、依存関係とその依存関係を必要とするモジュールが検索されます。

依存関係によって問題が発生している場合は、Java 9 と互換性のある、依存するパッケージの新しいバージョンを使用してビルドすることをお勧めします。そうでない場合は、オプションを探してみてください。

よくある間違い

java.lang.NoClassDefFoundError の解決方法 -

リーリー

これは、割り当てられたクラスがモジュールに移行されており、使用するコードからは見えないために見つからないことを訴えるコードです。解決策はいくつかあります。

JPMS は非常に重要な移行であるため、採用にはしばらく時間がかかります。幸いなことに、Java 8 は長期サポート リリースであるため、すぐに必要になるわけではありません。

ただし、長期的には、おそらくすでに得られている利点の一部を得るために、古いプロジェクトを移行し、新しいプロジェクトがモジュールを賢く使用することが必要になります。

###結論は###

JPMS は Java Platform Module System の略で、開発の初期段階ではプロジェクト ジグソーとも呼ばれていました。これにより、開発者は大規模なアプリケーションやライブラリを簡単に整理できるようになります。これにより、プラットフォームの構造が改善され、セキュリティ レベルが向上します。また、アプリケーションのパフォーマンスを向上させるためにも使用され、小型デバイスのプラットフォームの分解にも役立ちます。この背後にある主なアイデアは、モジュール上の外部コンシューマから要素を隠しながら、モジュールから見える関連パッケージのコレクションを有効にすることです。

以上がJPMS: Java プラットフォーム モジュール システムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート