gpt4 book ai didi

java - 文件路径在 JAR 文件内不起作用

转载 作者:行者123 更新时间:2023-11-30 02:43:18 25 4
gpt4 key购买 nike

我正在开发一个Java Swing应用程序,我有一个文件(例如key.text),其中包含解密 key ,解密是使用第三方库执行的,我正在做的解密是将 key.txt 传递给库方法。

Eclipse 工作区结构

src
com.org.controller
com.org.beans
key.txt

我尝试通过以下方式传递 bin 路径,

String keyFilePath = "bin/key.txt";
aesEncrypt.setSecretKey(keyFilePath); // passing path to library method

当我在 Eclipse 中运行时,代码片段运行顺利,但是当我将其打包到 jar 中时,它无法运行。

我尝试按以下方式使用getResource(),但这也不起作用。

URL url = this.getClass().getResource("/key.txt");
File file = new File(url.toURI());
String keyFilePath = file.getAbsolutePath();
aesEncrypt.setSecretKey(new File(keyFilePath).getAbsolutePath()); // passing path to library method

所以我的问题是,如何传递驻留在构建的 jar 中的资源路径?

最佳答案

由于您调用的 API 似乎需要文件名,因此您需要将资源(这是一个 zip 条目而不是实际文件)复制到实际文件中:

Path file = Files.createTempFile(null, ".txt");
try (InputStream stream = this.getClass().getResourceAsStream("/key.txt")) {
Files.copy(stream, file, StandardCopyOption.REPLACE_EXISTING);
}

aesEncrypt.setSecretKey(file.toString());

关于java - 文件路径在 JAR 文件内不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40997463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com