問題タブ [jdeps]
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.
java - Maven と NetBeans を使用してアプリケーションを JPMS モジュールにパッケージ化する方法は?
私の目標は、jlink を使用して、カスタム JRE にバンドルされたモジュラー ランタイム イメージにアプリケーションをパッケージ化することです。私のアプリは単純な「hello world」Java Standard Edition アプリで、Guava に依存しています。JDK11を使用しています。
基本的にはこのチュートリアルを Baeldungで再現しようとしていますが、依存関係を管理する NetBeans と Maven を使用し、モジュール システムでビルドするにはMaven Compiler Pluginバージョン 3.8.1 を使用します。
ディレクトリ構造:
module-info.java ファイル:
コントローラー.java:
pom.xml:
ただし、コンパイルされたクラスが作成され、jar やモジュールは作成されません。したがって、これ以上先に進むことはできません (jar のモジュールを jdeps で分析し、次に jlink を使用します)。明らかな何かが欠けているに違いありませんが、何ですか?
json - Gson の予期しない動作
デバイスからのデータを保存する小さなアプリケーションを開発しました。JSON 形式でデータを保存することを選択しました。データのシリアル化/逆シリアル化は、私が作成したカスタム型が含まれていても問題なく機能します...しかし、私だけがIDEで作業します(Eclipse、さらに言えば)。
ただし、実行可能な JAR ファイルをエクスポートすると、ソフトウェアが常に次の例外をスローするため、データの逆シリアル化で何らかの問題が発生します。
組み込み型ではなく、カスタム型で問題が発生すると思いました。この時点で、次の 2 つのことがわかりました。
- 完全な JRE 9 を使用して JAR ファイルを実行すると、例外はスローされません。Jlink.exe で作成したカスタム JRE に含まれるモジュールを再確認したところ、すべてが正しく含まれていました。私はまだ小さい JRE を使用したいので、これ以上調査しませんでした (IDE で完全に動作する理由はこれで説明できると思います)。
- カスタム デシリアライザーを Gson オブジェクトに追加し (以下を参照)、JSON 文字列を有効なデータに手動で変換するだけで、LocalDateTime クラスでの例外を回避できましたが、例外は別のクラスで単純に再表示されました。カスタムメイドの時間。
この時点で、問題を引き起こすデータ型ごとにデシリアライザーを追加するだけでよいと思いますが、完全な JRE で問題が発生しない理由と、すべてのモジュールが必要なものが含まれています。データを保存する Gson オブジェクトにカスタム シリアライザーを追加していないことにも言及する価値があるかもしれません。すべて Gson の既定値に従ってシリアル化されます。
LocalDateTime
デシリアライザー:
Jdeps.deps モジュール リスト:
受け取った回答の後、ここで問題を開きました。
java-9 - Jigsaw ヘルパー コマンドを使用して lib/ ディレクトリから可能なすべてのパッケージのリストを取得するにはどうすればよいですか?
現在、モジュラー アプリを作成していません。
ただし、jdeps/jdeprscan がパッケージの jar ファイルをスキャンできることがわかりました。
上記のコマンドのいずれかを使用して、内部のすべての jar に含まれるすべてのパッケージを印刷する方法はありますか?lib/