com.sun.crypto.provider.SunJCE的NoClassDefFoundError

时间:2015-01-30 12:38:51

标签: java eclipse jar

我有一个在eclipse中正确运行的小程序,但是当我创建一个jar并尝试运行相同的代码时,我得到Exception in thread "main" java.lang.NoClassDefFoundError: com.sun.crypto.provider.SunJCE 请建议。 感谢

2 个答案:

答案 0 :(得分:2)

检查Jar文件sunjce_provider.jar是否在您的类路径中。通常它位于目录$JAVA_HOME/lib/ext

答案 1 :(得分:0)

确保:

  • 运行jar时,您正在使用Oracle的Java SE。其他JVM默认没有此提供程序。
  • 您已在运行jar的JVM
  • 上安装了java无限制辖区政策文件

请注意,您可以使用以下代码检查可用的提供程序和算法:

import java.security.Provider;
import java.security.Security;
import java.util.Enumeration;

public class MainClass {
  public static void main(String[] args) throws Exception {
    try {
      Provider p[] = Security.getProviders();
      for (int i = 0; i < p.length; i++) {
          System.out.println(p[i]);
          for (Enumeration e = p[i].keys(); e.hasMoreElements();)
              System.out.println("\t" + e.nextElement());
      }
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}

找到here