JDBCドライバーのモジュール対応(module-info.classの組み込み)を試みました。JDBCドライバーは、自動モジュール対応までしており、モジュールアプリケーションから利用できます。自動モジュールとは、JARファイルにはmodule-info.classが組み込まれておらず、マニフェストファイルのAutomatic-Module-Name属性にモジュール名が定義されたJARファイルです。アプリケーションの配布イメージをJLinkで作成する際、自動モジュールを使用しているアプリケーションではエラーとなってしまいます。JLinkは、自動モジュールに対応していないためです。JDBCドライバーのJARファイルに突っ込み、モジュール対応したものとしてJLinkにかけてみます。依存関係を抽出します。jdepsコマンドを使いますが、オプション指定にいろいろあり、何が正解か分かりませんので試した結果をメモします。オプションの差は、後者は推移的な依存関係のあるものはリストされないというもののようです。exports宣言し、このAPIが実行時に最低限必要なモジュールをrequires宣言します。必要なモジュールは、先のjdepsコマンド(--list-reduced-depsオプション)で調べたものを記述します。java.baseは暗黙でrequiresされるので省略します。JARファイルに追加します。使用JDBCを使用するアプリケーションの配布イメージをjlinkで作成します。D:\toru\Documents\work\job\mcc\Glowlink\spectrum_viewer\.\mssql-jdbc-7.4.1.jre11.jarは現在サポートされていませんとjlinkコマンドがエラーから警告に変わり、配布イメージが生成されました。:一応生成できています。Source)JDBCドライバが見つからないとのエラーになってしまいました。回避策(場当たり的な)本来は不要ですが、プログラム中でJDBCドライバークラスを明示的にnewして登録すると実行可能となりました。}}実行時エラーの調査JDBCドライバーが見つからないという実行時エラーの原因を探ってみます。mssql-jdbc-7.4.1.jre11.jarモジュール・ディスクリプタが見つかりません。自動モジュールが導出されました。元のmssql-jdbc-7.4.1.jre11.jarと、module-info.classを後付け挿入したmssql-jdbc-7.4.1.jre11.jarとの違いを見ると、今回の実行時エラー(ドライバーが見つからない)に関係しそうな相違点は、provies項です。ファイルを置き、このファイルの中にSPIの実装クラスのFQCNを記載します。場合は、このファイルの中に次の記述があります。com.microsoft.sqlserver.jdbc.SQLServerDriverこのJARファイルがクラスパスにあると、サービスローダーがSPIの実装クラスを認識してロードすることができます。モジュール仕様では、SPIの実装はモジュール定義(module-info.java)にprovides宣言で記述します。module-info.classの生成とJARファイルへの後付け(試行2回目)module-info.javaに、provides宣言を追加し、コンパイルしたmodule-info.classをJARファイルに追加します。mssql.security.providerprovides項が見えています。Serverに接続して無事データベースアプリケーションとして実行できるようになりました。2017のセッション動画がいくつか公開されています。月別アーカイブはてなブログをはじめよう!torutkさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。