know_wwwh 2018-05-22 09:28 采纳率: 0%
浏览 3274
已结题

TrueLicense生成证书报错FileNotFoundException

用jdk自带工具keytool生产密钥文件privateKeys.store,truelicense产生证书文件一直报错:
java.io.FileNotFoundException: privateKeys.store
at de.schlichtherle.license.AbstractKeyStoreParam.getStream(AbstractKeyStoreParam.java:45)
at de.schlichtherle.license.LicenseNotary.getKeyStore(LicenseNotary.java:348)
at de.schlichtherle.license.LicenseNotary.getPrivateKey(LicenseNotary.java:267)
at de.schlichtherle.license.LicenseNotary.sign(LicenseNotary.java:205)
at de.schlichtherle.license.LicenseNotary.sign(LicenseNotary.java:170)
at de.schlichtherle.license.LicenseManager.create(LicenseManager.java:360)
at de.schlichtherle.license.LicenseManager.store(LicenseManager.java:303)
at de.schlichtherle.license.LicenseManager.store(LicenseManager.java:272)
at com.xunfang.utils.license.create.CreateLicense.create(CreateLicense.java:102)
at com.xunfang.utils.license.create.LicenseCreateTest.main(LicenseCreateTest.java:7)
create license file failure
断点发现truelicense api 此类AbstractKeyStoreParam 中的方法AbstractKeyStoreParam变量in一直是null
protected AbstractKeyStoreParam(final Class clazz, final String resource) {
if (null == clazz || null == resource)
throw new NullPointerException();
this.clazz = clazz;
this.resource = resource;
}
网上看了getResourceAsStream方法有几种方式,但是我把密钥文件放在项目根目录或者该类的同一个包路径下都一样报错,一头雾水,求助各位大神帮忙。

  • 写回答

3条回答 默认 最新

  • nartos 2020-07-06 17:57
    关注

    复写de.schlichtherle.license.AbstractKeyStoreParam的getStream()方法,用于将公私钥存储文件存放到其他磁盘位置而不是项目中

    @Override
    public InputStream getStream() throws IOException {
        final InputStream in = new FileInputStream(new File(storePath));
        if (null == in) {
            throw new FileNotFoundException(storePath);
        }
    
        return in;
    }
    
    评论

报告相同问题?