java.security.NoSuchAlgorithmException与maven和bouncycastle

java.security.NoSuchAlgorithmException与maven和bouncycastle,java,maven,bouncycastle,Java,Maven,Bouncycastle,如果我通过maven创建jar,我将无法启动它,调试工作正常。我已经完成了解密:RSA/NONE/OAEPPadding我正在使用bouncycastle,虽然我注册了BouncyCaste,但java没有注意到它。如果我在intellij中调试它,这不会发生。控制台输出如下所示: adding BouncyCastleProvider2 java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA

如果我通过maven创建jar,我将无法启动它,调试工作正常。我已经完成了解密:RSA/NONE/OAEPPadding我正在使用bouncycastle,虽然我注册了BouncyCaste,但java没有注意到它。如果我在intellij中调试它,这不会发生。控制台输出如下所示:

adding BouncyCastleProvider2
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/NONE/OAEPPadding
    at javax.crypto.Cipher.getInstance(Cipher.java:535)
    at leanderk.rplay.library.RTSPResponder.decryptRSA(RTSPResponder.java:338)
    at leanderk.rplay.library.RTSPResponder.handlePacket(RTSPResponder.java:200)
    at leanderk.rplay.library.RTSPResponder.listenAndProcessPackets(RTSPResponder.java:431)
    at leanderk.rplay.library.RTSPResponder.run(RTSPResponder.java:377)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Java代码:

System.out.println("adding BouncyCastleProvider2");
        try {
            Security.addProvider(new BouncyCastleProvider());
        } catch (Error e) {
            e.printStackTrace();
        }
        try{
            // La clef RSA
            PEMReader pemReader = new PEMReader(new StringReader(key));
            KeyPair pObj = (KeyPair) pemReader.readObject(); 

            // Encrypt
            Cipher cipher = Cipher.getInstance("RSA/NONE/OAEPPadding"); 
            cipher.init(Cipher.DECRYPT_MODE, pObj.getPrivate());
            return cipher.doFinal(array);

        }catch(Exception e){
            e.printStackTrace();
        }
我在绝望中发现了这个错误,希望能有一个好的结果

这是我的maven assembly插件,唯一的其他插件是编译器插件:

             <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>leanderk.rplay.library.Main</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
                        <phase>package</phase>
                    </execution>
                </executions>
            </plugin>

虽然我不认为这会有帮助,但请看一下这篇文章:我无法更改JRE