Java 为什么我没有得到这样的例外

Java 为什么我没有得到这样的例外,java,maven,rsa,bouncycastle,sha,Java,Maven,Rsa,Bouncycastle,Sha,我正在尝试使用Bouncy Castle作为Maven项目中的安全提供商。它在代码库中的某些地方似乎工作得很好,对于某些人来说,它在任何地方都工作得很好。但是,如果我尝试以下方法: public class Foo { public static void main(String[] args) throws Exception { Signature signature = Signature.getInstance("SHA256withRSA", "BC");

我正在尝试使用Bouncy Castle作为Maven项目中的安全提供商。它在代码库中的某些地方似乎工作得很好,对于某些人来说,它在任何地方都工作得很好。但是,如果我尝试以下方法:

public class Foo {
    public static void main(String[] args) throws Exception {
        Signature signature = Signature.getInstance("SHA256withRSA", "BC");
    }
}
然后我得到一个NoSochProviderException异常

在pom中,我将Bouncy Castle作为一个依赖项

<dependency>
          <groupId>bouncycastle</groupId>
          <artifactId>bcprov-jdk16</artifactId>
          <version>140</version>
          <scope>compile</scope>
</dependency>
我尝试了几种不同的JDK,但都给出了相同的错误。

正如前面提到的那样,添加以下行应该可以解决您的问题

Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
如问题所述,添加以下行应该可以解决您的问题

Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

这解决了问题,但你知道为什么它对某些人有效,而对我无效,即使他们没有那条线吗?这解决了问题,但你知道为什么它对某些人有效,而对我无效,即使他们没有那条线吗?