我想引用文件Maven项目结构内。经过我的测试情况下,该文件位于成功,但是当我将项目部署到WebLogic环境,我收到一个错误:
java.io.FileNotFoundException:keystore.jks(系统找不到指定的路径)
在我的代码,我指的是文件如下:
File pKeyFile = new File("certificates/keystore.jks");
String pKeyPassword = keyStorePassword;
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
KeyStore keyStore = KeyStore.getInstance("JKS");
InputStream keyInput = new FileInputStream(pKeyFile);
更新:
我试过如下:
File pKeyFile = new File(this.getClass().getClassLoader().getResourceAsStream("certificates/keystore.jks").toString());
String pKeyPassword = keyStorePassword;
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
KeyStore keyStore = KeyStore.getInstance("JKS");
InputStream keyInput = new FileInputStream(pKeyFile);
keyStore.load(keyInput, pKeyPassword.toCharArray());
keyInput.close();
keyManagerFactory.init(keyStore, pKeyPassword.toCharArray());
当我评价this.getClass()。getClassLoader()。的getResourceAsStream( “证书/ keystore.jks”)的表达,我可以看到该文件被发现。但它仍然抛出了同样的错误,当它试图将文件加载作为InputStream。
你可以不写
File pKeyFile = new File("src/main/resources/certificates/keystore.jks");
在Java路径是:
相对路径从你的程序运行的位置开始。因此,使用的src /肯定是不对的