最近遇到了一个问题
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(它工作的地方(到目前为止)),但是了解这个潜在的令人愤怒的问题到底是什么仍然很有趣。