0

最近遇到了一个问题

java.security.NoSuchAlgorithmException:算法 HmacSHA1 不可用

尝试使用以下简单代码来隔离问题:

import java.security.NoSuchAlgorithmException;

import javax.crypto.Mac;

public class Main {
  public static void main(String... args) {

      final String HMAC_SHA1_ALGORITHM = "HmacSHA1";
      Mac instance;
      try {
          instance = Mac.getInstance(HMAC_SHA1_ALGORITHM);
      } catch (NoSuchAlgorithmException e) {
          final String errmsg = "NoSuchAlgorithmException: "
                  + HMAC_SHA1_ALGORITHM + " " + e;
          // ...
      }

  }
}

问题是这适用于我的一个 Eclipse 实例,而不是另一个。全部使用 New Java Project 进行测试,粘贴以上内容并运行,所以这应该是由于 Eclipse 实例之间的一些设置差异造成的。

我试图查看所有看似相关的设置(类路径、JRE、Java 编译器),但没有任何东西看起来不同,或者如果改变了它就可以工作。(如果有人知道如何“区分”两个 Eclipse 的设置,请告诉!)

我正在诉诸于简单地使用第三个 Eclipse(它工作的地方(到目前为止)),但是了解这个潜在的令人愤怒的问题到底是什么仍然很有趣。

4

1 回答 1

0

我使用 Eclipse 和 tomcat 遇到了同样的异常,我所做的是:

通过 TOMCAT 8 配置重新加载 JDK,它开始工作

于 2014-08-13T10:30:12.310 回答