問題タブ [java-module]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
269 参照

java - Project Jigsaw / Java プラットフォーム モジュール システム

現在、デスクトップ アプリケーション用のプラグイン コンセプトを開発する可能性を評価しています。
調査中に、OSGI と Java Platform Module System (または Project Jigsaw) について知りました。
Java Platform Module System の仕様について少し混乱しています。

  • Java プラットフォーム モジュール システムでは、モジュールをプラグインのように追加できますか?
    オプションのモジュールを宣言して、そのサービスにアクセスすることは可能ですか?

  • モジュールが独自のクラスパスを持ち、アプリケーションの残りの部分から分離することは可能ですか?

  • サードパーティのプログラマーが、既存のアプリケーションにシームレスに統合するプラグインを実装することは可能ですか?

誰かが仕様を理解するのを手伝ってくれたら、とても感謝しています。

0 投票する
2 に答える
1485 参照

java - Java 9 で循環モジュール依存関係は可能ですか?

Java 9 では、循環モジュールは許可されますか? いいえの場合、その理由は何ですか?

0 投票する
1 に答える
484 参照

domain-driven-design - Java 9 モジュールと DDD での二重ディスパッチ

一部のプロジェクトでは、ダブル ディスパッチ メカニズムを使用して、実行時にインフラストラクチャ モジュールの「ビュー」をドメイン モジュールに提供しています (ドメインの強化: ダブル ディスパッチ パターン)。上記で「モジュール」と呼んでいるものは、service.jar->domain.jar からの依存関係がコンパイル時にのみ適用される単純な個別の jar ファイルです。サービスとドメインを「真の」Java 9モジュールとして定義すると、Java-9でこれを機能させることができますか?

0 投票する
1 に答える
1970 参照

java - Java 9 モジュールでは、複数のモジュールが同じパッケージをエクスポートできますか?

Java 9 モジュール システムに適合するベスト プラクティスを使用して、利点を得るために行う作業を少なくしようとしています (そして、現在のシステムは、いくつかのモジュール性から実際に利益を得ることができます)。

現在の標準では、モジュール A がパッケージ com.example.foo をエクスポートし、モジュール B がパッケージ com.example.foo をエクスポートすることは許可されていますか?

関連する質問として、関連する場合、この点が実際に解決されているか、それともまだ最終的ではないかということです.

0 投票する
0 に答える
1807 参照

java - 実行中のJava 9モジュール例外

https://jdk9.java.net/download/から jdk 9 をダウンロード し、 http://openjdk.java.net/projects/jigsaw/quick-start#linkerJigsaw からクイックスタート ガイドを ダウンロード して、最初の例「ご挨拶」を書きました。 "このガイドによると。プロジェクトは正常にコンパイルされましたが、実行しようとすると例外が発生しました

この例外の理由が見つかりませんでした

0 投票する
17 に答える
138580 参照

java - Java 9 で InaccessibleObjectException (「{member} をアクセス可能にできません: モジュール {A} は {B} に対して {package} を開きません」) を解決する方法は?

この例外は、Java 9 でアプリケーションを実行しているときに、さまざまなシナリオで発生します。特定のライブラリとフレームワーク (Spring、Hibernate、JAXB) は、特に発生しやすい傾向があります。Javassist の例を次に示します。

メッセージには次のように書かれています。

保護された最終的な java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) を作成できないと、java.lang.ClassFormatError がアクセス可能になる: モジュール java.base名前のないモジュール @ 1941a8ff に対して「java.lang を開きません」

例外を回避し、プログラムを正常に実行するにはどうすればよいですか?

0 投票する
1 に答える
1572 参照

java - Javadoc は Java 9 でのモジュールの可視性をどのように扱っていますか?

Javadoc ツールは、アクセシビリティ修飾子に基づいてドキュメントを生成します。デフォルトでは、すべてpublicprotectedクラス、フィールド、およびメソッドが文書化されます。これは、次のオプションで変更できます。

-public
public クラスとメンバーだけを表示します。

-protected 保護
された public クラスとメンバーのみを表示します。これがデフォルトです。

-package
パッケージ、保護、およびパブリック クラスとメンバーのみを表示します。

-private
すべてのクラスとメンバーを表示します。

Java 9 はモジュールの概念を導入し、プロジェクト Jigsaw はそれを既存の JDK に適用します。Mark Reinholdによる講演(モジュールに関する一連の講演の 3 番目) は、モジュールの可視性 ( 経由)に応じて、モディファイヤがどのようpublicに異なるレベルのアクセシビリティを持っているかを示しています。exports

  • みんなに公開
  • パブリックだが特定のモジュールのみ
  • モジュール内でのみ公開

現在、すべてのパブリック メンバーにアクセスできるわけではないため、同じ Javadoc 生成スキームを使用し続けることはあまり意味がありません。「十分な」レベルで公開されているメンバーのみを文書化する必要があります。

Javadoc モジュールは認識されますか? 追加の露出レイヤーを処理するために、上記のものに加えてコマンド オプションはありますか? 特定のモジュールにのみ公開されているパブリック メンバーの場合、Javadoc には次のようにリストされていますか?

?

0 投票する
3 に答える
4888 参照

java - MANIFEST.MF を介して Java 9 モジュールを要求できますか?

私の Java ライブラリは、Java 8 および Java 9 と互換性があるはずです。Java 9 で実行するには、Java 9 モジュールの一部が必要です。

を使用してコマンドラインから追加できることを知ってい--add-modulesます。しかし、これはライブラリであり、コマンド ラインを制御できません。

--add-modulesin に相当するものはありMANIFEST.MFますか? または、Java 8 と互換性のある他のソリューションはありますか?

0 投票する
1 に答える
1900 参照

java - Java 9:​​ JLink が無効なイメージを作成しました - モジュールの実行可能スクリプトがありません

との 3 つのモジュールuserでサンプル アプリケーションを作成しています。ユーザー モジュールにはメイン クラスがあり、次のコマンドでモジュールをコンパイルします。deptaccount

コンパイル後、次のコマンドを実行して実行します。

Java モジュールを実行した後の出力は正常です。しかし、jlink正常に作成されたイメージを使用してランタイム イメージを作成しようとすると、モジュールの実行可能スクリプトが存在しません。イメージを作成するために、次のコマンドを使用しています。

ランタイム イメージにはbinディレクトリがありますが、このディレクトリにはスクリプトしか含まれていませjavakeynote。アプリケーションを実行するために、ユーザーメインクラススクリプトも期待しています。

以下のように私のJavaバージョン:

この問題を解決するにはどうすればよいですか?

0 投票する
1 に答える
849 参照

java - Java 9 モジュールとクラスパス地獄: 競合するクラス名

クラスパス地獄はJava 9のモジュールが解決すると言われています。ただし、次の状況について考えています。モジュール A はモジュール B と C を使用します。両方のモジュールが同じ名前とパッケージのクラスをエクスポートします。ここでクラスローディングの問題はどのように解決されますか?