подписанный модульный JAR с провайдером шифрования не может быть связан с образом времени выполнения - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь использовать инструмент jlink для создания исполняемого файла java.Я использую его следующим образом:

jlink.exe --module-path <path-to-modules> --add-modules <my-module-name> --output dist --launcher launch=org.demo/org.demo.Main --strip-debug --compress 2 --no-header-files --no-man-pages

, но выдает следующую ошибку:

Error: signed modular JAR <path-to-modules>\bcprov.jdk15on.jar is currently not supported, use --ignore-signing-information to suppress error

Когда я добавляю опцию "--ignore-signature-information", он создает мой исполняемый файл нормально, но выдает мне следующее предупреждение:

WARNING: signed modular JAR <path-to-modules>\bcprov.jdk15on.jar is currently not supported

А потом, когда я выполняю уже построенный исполняемый файл, я получаю следующее исключение:

org.apache.sshd.common.SshException: Failed (NoSuchProviderException) to execute: JCE cannot authenticate the provider BC
    at sshd.core/org.apache.sshd.common.future.AbstractSshFuture.verifyResult(Unknown Source)
    at sshd.core/org.apache.sshd.client.future.DefaultAuthFuture.verify(Unknown Source)
    at sshd.core/org.apache.sshd.client.future.DefaultAuthFuture.verify(Unknown Source)
Caused by: java.util.jar.JarException: Non-Oracle JCE providers may not be linked into the image,they must be provided as signed JAR files.
        at java.base/javax.crypto.ProviderVerifier.verify(Unknown Source)
        at java.base/javax.crypto.JceSecurity.verifyProvider(Unknown Source)
        at java.base/javax.crypto.JceSecurity.getVerificationResult(Unknown Source)
        at java.base/javax.crypto.JceSecurity.getInstance(Unknown Source)
        at java.base/javax.crypto.KeyAgreement.getInstance(Unknown Source)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

У меня вопрос: есть ли способ использовать подписанные jar с инструментом «jlink», или есть ли способ избежать ошибки «Поставщики JCE, не относящиеся к Oracle, не могут быть связаны с образом»?

...