8

Java 6 から Java 7 SDK にアップグレードしたところ、ant ビルドで次のエラーが発生しました。

エラー: パッケージ sun.security.pkcs11 が存在しません
Provider p = new sun.security.pkcs11.SunPKCS11(is);

Windows 7 64 ビットを実行しています。Java 6 に戻せば問題なくコンパイルできますが、それはもはや選択肢ではありません。私はオンラインで解決策を見つけることができませんでした。誰でもこの問題を解決する方法を知っていますか?

4

5 に答える 5

4

制限されていないAPIを使用するようにアプリケーションを変換する必要があります。あなたがそのようなことをしたとき、コンパイラはあなたに非常に厳密に警告します-これはそれらの警告に直面して続行した結果です。

開発者が「sun」パッケージを呼び出すプログラムを作成すべきでない理由を参照してください

于 2012-12-04T19:53:20.380 に答える
3

API は oracle oracle bugによってリリースされておらず、tom と yassering による回答はどちらも正しいです。

于 2013-04-04T06:04:32.183 に答える
3

私は同じ問題に直面しており、64ビットの代わりに32ビットのJDKをインストールすることで解決し、確実に動作します。

于 2012-12-05T05:21:17.380 に答える
2

SunPKCS11 のサポートは Windows 64 ビットには存在しないため、Windows 64 ビットをビルド環境のみに使用しており、ランタイムが Linux またはその他のサポートされている環境であると想定しています。

上記に該当する場合、ビルドを機能させるために、sunpkcs11.jar を 32 ビット jdk からコピーし、jre\lib\ext の下の 64 ビット jdk にコピーします。これは私にとってはうまくいきました。

または、代わりに jdk8 が修正されるのを待ちます。

于 2013-11-13T05:40:13.543 に答える
-2

同じエラーが発生しています。

Only a type can be imported. sun.security.pkcs11.wrapper.CK_AES_CTR_PARAMS resolves to a package

jdk 7x64がインストールされたWindows 7 x64があり、jdk 7x32に置き換えられました。また、JAVA_HOME が新しい jdk インストールに設定されていることも確認しました。アプリケーションを実行すると、同じ問題が発生します。

于 2014-06-17T07:15:03.990 に答える