无法找到指定的文件的Java(Maven配置)

问题描述 投票:0回答:1

我想引用文件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。

java maven file filenotfoundexception
1个回答
0
投票

你可以不写

File pKeyFile = new File("src/main/resources/certificates/keystore.jks");

在Java路径是:

  1. 绝对
  2. 相对:这是你的情况下,
  3. 资源类路径

相对路径从你的程序运行的位置开始。因此,使用的src /肯定是不对的

© www.soinside.com 2019 - 2024. All rights reserved.