找不到符号:KeyStore.TrustedCertificateEntry

时间:2014-04-27 23:13:59

标签: java keystore x509

我正在尝试在OS X / Java 7系统上加载可信证书。根据Java的Class KeyStore,有KeyStore.TrustedCertificateEntry类型。

以下代码:

KeyStore ks = KeyStore.getInstance(KeyStore.TrustedCertificateEntry);

产生以下错误:

HttpsCiphers.java:34: error: cannot find symbol
        KeyStore ks = KeyStore.getInstance(KeyStore.TrustedCertificateEntry);
                                                   ^
  symbol:   variable TrustedCertificateEntry
  location: class KeyStore

我正在导入KeyStoreTrustedCertificateEntry

如何使用TrustedCertificateEntry或加载受信任的证书存储区?


$ java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

$ system_profiler SPSoftwareDataType
Software:

    System Software Overview:

      System Version: OS X 10.8.5 (12F45)
      Kernel Version: Darwin 12.5.0
      ...

2 个答案:

答案 0 :(得分:2)

1.5中引入了

KeyStore.TrustedCertificateEntry。您必须使用较早的Java,或者您可能拥有自己的类KeyStore.

无论如何,代码都是废话。它应该是KeyStore.getInstance(KeyStore.getDefaultType())或命名显式密钥库类型的String参数。

答案 1 :(得分:1)

根据getInstance()方法Javadoc(接受String的方法),您应该将它与一个可能的值一起使用:

  • jceks - SunJCE提供商提供的专有密钥库实现;
  • jks - SUN提供商提供的专有密钥库实现;
  • pkcs12 - PKCS#12;
  • 中定义的个人身份信息的传输语法

here获取的信息。

对我来说,这听起来像是在误导KeyStore.TrustedCertificateEntry类,因为它似乎打算与getEntry()/setEntry()方法一起使用。