解決
わかりました、これがこの問題の解決策です。重要なのは、jar内には、dllも、ファイルを含むフォルダーもjarにパッケージ化されないということです。したがって、ほぼすべてのdll、画像を含むフォルダー、または実行可能なjarがある場所の隣のフォルダーにある必要があるものはすべてです。jarにパックされるのは、ソフトウェアを実行するための外部jarと.javaファイルだけです。
とにかく、Firebird埋め込みモードでは、かなり注意が必要です。jaybird(SOME_VERSION).dllは、すべての.dll、.msgファイルの隣に配置する必要があるためです。ただし、JVMは、jaybird dllがjava.library.pathにあることを要求します。もちろん、これはsystem32と、プログラムに関係のないいくつかのjavaフォルダーです。
したがって、プログラムで実行可能なjarフォルダーをjava.library.path(実際にはパスと呼ばれる必要があります)として検出するには、jaybirddllファイルとその他のfirebirdファイルおよびフォルダーをメインメソッドに配置します。
String decodedPath =URLDecoder.decode(ClassLoader.getSystemClassLoader().getResource(".").getPath(), "UTF-8");
decodedPath=decodedPath.substring(1, decodedPath.length()-1).replaceAll("/", "\\\\");
System.setProperty("java.library.path",decodedPath+";"+System.getProperty("java.library.path")));
ライブラリパスの前のディレクトリをリストに追加するだけなので、これを同意します。
これらのLOCはANYCODEの前にある必要があり、コンストラクターの呼び出しも含まれることに注意してください。グローバル静的モジュールまたはJNI呼び出しを使用している場合は注意してください。
これが誰かの時間を節約することを願っています、私はこれを正しく理解しようとして私の仕事の12時間を失いました。
管理者が私の編集を消去しないか、この質問に自己回答していただければ幸いです。
ハッピーコーディング=D