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方法有几种方式,但是我把密钥文件放在项目根目录或者该类的同一个包路径下都一样报错,一头雾水,求助各位大神帮忙。

复写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;
}

https://stackoverflow.com/questions/18913296/keytool-error-java-lang-exception-keystore-file-exists-but-is-empty

你可以通过String path = Test.class.getResource("/").getPath();获取类路径,将privateKeys.store放到该路径下即可。