我正在尝试引用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(" certificates / keystore.jks")表达式时,我可以看到找到了该文件。但是当它试图将文件作为InputStream加载时,它仍然会抛出相同的错误。
答案 0 :(得分:0)
你不能写
File pKeyFile = new File("src/main/resources/certificates/keystore.jks");
在Java路径中可以是:
相对路径从程序运行的位置开始。所以使用src /肯定是错误的