gpt4 book ai didi

java - 读取压缩的 war 存档中的文件和目录

转载 作者:行者123 更新时间:2023-11-29 05:05:46 25 4
gpt4 key购买 nike

我正在尝试访问压缩 war 文件中的文件夹,但没有成功。

归档结构:

app.war                
|- META-INF
|- org
|- WEB-INF
|- classes
|- com
|- static
|- testcases
|- 1
|- 2...
|- ...22
|- README.txt (file)
|- TEST.CASE (file)

这是我读取testcases目录内容的代码:

URL url = Thread.currentThread().getClass().getClassLoader().getResource("testcases");

LOG.debug("PROTOCOL=" + url.getProtocol());

List<String> files = IOUtils.readLines(url.openStream());

LOG.debug("DIRS=" + files.size());
LOG.debug("PATH=" + url.getPath());
for (String s : files)
LOG.debug(s);

在 eclipse 中运行我得到的输出是:

TestCaseUtil : PROTOCOL=file
TestCaseUtil : DIRS=22
TestCaseUtil : PATH=/C:/Users/{Name}/development/git/app/target/classes/testcases
TestCaseUtil : 1
...
TestCaseUtil : 22

当我使用 java -jar app.war 从命令行执行 war 时,我得到以下输出:

TestCaseUtil : PROTOCOL=jar
TestCaseUtil : DIRS=0
TestCaseUtil : PATH=file:/C:/Users/{Name}/development/git/app/target/app.war!/WEB-INF/classes!/testcases

谁能告诉我我做错了什么?

最佳答案

你没有做错什么。

当您在 eclipse 中运行项目时,它会将编译后的类文件保存在 target 文件夹中,而不是实际的 war 文件结构。

但是当您创建一个war 文件时,所需的类文件将被移动到WEB-INF/classes 文件夹下。

因此结果不同。只需确保在创建 WAR 文件时其中包含所需的文件夹/类,并且您可以使用任何 ZIP 实用程序对其进行验证。

关于java - 读取压缩的 war 存档中的文件和目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30399520/

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