如果我通过maven创建它,我无法启动jar,调试工作正常。我已经完成了解密:RSA/NONE/OAEPPadding
(我正在使用bouncycastle)虽然我注册了有弹性的种姓,但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();
}
(我正在绝望地抓住这个错误,希望得到一个noclassdef)
这是我的maven-assembly-plug-in(唯一的其他插件是编译器插件):
<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>