gpt4 book ai didi

java - 如何从tomcat7中的jar中获取txt文件

转载 作者:行者123 更新时间:2023-11-30 07:20:03 25 4
gpt4 key购买 nike

我有一个 txt 文件。我使用 jar cf0... 将它打包成一个 zip 和一个 jar。为了让它发挥作用,我已经尝试了这两种方法。

models.zip/models.jar
|
|_subfolder
|
|_MyFile.txt

在一些代码中我有...

InputStream in = getClass().getClassLoader().getResourceAsStream(path);
BufferedReader reader = new BufferedReader(new InputStreamReader(in));

我试过将路径设置为...

MyFile.txt
/MyFile.txt
/subfolder/MyFile.txt
classpath:/subfolder/MyFile.txt
models.zip/subfolder/MyFile.txt
models.jar/subfolder/MyFile.txt
models.zip!/subfolder/MyFile.txt
models.jar!/subfolder/MyFile.txt

我还尝试将 jar/zip 放在 WEB-INF/classesWEB-INF/lib 中。

这些都不起作用,in 始终为 null。

如你所知,当我将 MyFile.txt 放在 WEB-INF/classes 中时,我可以得到它。

请提供经过验证的答案!请不要只是复制和粘贴其他答案中的代码。

最佳答案

尝试

InputStream is = getClass().getClassLoader().getResourceAsStream  ("/subfolder/MyFile.txt");

把你的jar文件放在WEB-INF/lib/

编辑:你应该相信你自己的代码,这是我正在运行的网络应用程序的片段。类在“it.sft.utils.props”包中,相关属性文件通过 ant int 打包在同一个 jar 的同一个文件夹中。这完美无缺。

在您的特定情况下,您的类路径中可能没有 jar

 private void loadFromProperties() throws IOException {
if (currencies == null) {
currencies = new Properties();
InputStream is = this.getClass().getClassLoader().getResourceAsStream ("/it/sft/utils/props/currencies.props");
if (is != null) {

currencies.load(is );

for (String key : currencies.stringPropertyNames()) {
String value = currencies.getProperty(key);
try {
String [] tmp = value.split(",");
String code = tmp[0];
int decs = Integer.parseInt(tmp[1]);
String text = tmp[2];
Logger.getLogger(CurrencyResolver.class).debug("Adding " + key + " with code " + code + " [" + text + "]");
storeValutaIso4217(new ValutaIso4217(key, code, decs, text));
}catch (Exception e) {
// Ignore
Logger.getLogger(CurrencyResolver.class).warn("Cannot handle " + key + " >" + value + "<");
}
}
}
}
}

或者您是否偶然从某种 IDE(NetBeans 或 Eclipse)运行它?

只是因为偏执:jar 文件实际上可以由 tomcat 运行用户读取,不是吗?

关于java - 如何从tomcat7中的jar中获取txt文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14238699/

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