我尝试开发一个访问智能卡的 javafx 应用程序。
我有一个简单的概念证明,如下所示:
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
}
}
例外是:
Caused by: java.lang.NoClassDefFoundError: sun/security/pkcs11/SunPKCS11
at javafxapplication7.SampleController.handleButtonAction(SampleController.java:26)
只需在 64 位 JDK 旁边(或代替)安装 32 位 JDK,并确保使用 32 位版本编译和签署 JAR/COD 文件。
其实它是一个64 位的错误版本..https://bugs.java.com/bugdatabase/view_bug;jsessionid=f1279f413fd19e3a247022d6dcca9?bug_id=7105065
我在以下讨论中找到了它:-
http://www.java.net/node/703858
http://tai-dev.blog.co.uk/2009/11/11/are-you-seeing-the-java-lang-noclassdeffounderror-sun-security-pkcs11-sunpkcs11-error-when-signing-your- rim-blackberry-j2me-apps-7352729/
http://community.igniterealtime.org/thread/30821
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)