javafx上的sun.security.pkcs11
我尝试开发一个访问智能卡的javafx应用程序。
我有一个简单的概念certificate,如下所示:
package javafxapplication7; import java.net.URL; import java.util.ResourceBundle; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Label; import sun.security.pkcs11.SunPKCS11; public class SampleController implements Initializable { @FXML private Label label; @FXML private void handleButtonAction(ActionEvent event) { SunPKCS11 a = new SunPKCS11(); } @Override public void initialize(URL url, ResourceBundle rb) { // TODO } }
而exepcion是:
Caused by: java.lang.NoClassDefFoundError: sun/security/pkcs11/SunPKCS11 at javafxapplication7.SampleController.handleButtonAction(SampleController.java:26)
只需在64位JDK的旁边(或代替)安装32位JDK,并确保使用32位版本编译和签署JAR / COD文件。
实际上它是64位版本中的一个错误 .. http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=f1279f413fd19e3a247022d6dcca9?bug_id=7105065
我在以下讨论中找到了它: –
无论您遇到此特定问题,请不要使用sun.*
类。 它们不是为公共用途而设计的。
您可能希望使用SunPKCS11
JCE提供程序来使用智能卡。 请查看本指南以帮助您入门: http : //docs.oracle.com/javase/1.5.0/docs/guide/security/p11guide.html 。