gpt4 book ai didi

Java 文件未找到异常

转载 作者:行者123 更新时间:2023-12-01 15:40:43 24 4
gpt4 key购买 nike

这对我来说可能是非常愚蠢的事情,但我已经为此奋斗了一个小时。

给定这些类,它们都在同一个包中:

  • ParsingClass.java
  • CatalogHandler.java(扩展 DefaultHandler,添加 ConfigMap 字段)
  • hd.xml

由于类和 XML 位于同一个包中,所以我没想到要费力寻找 XML 文件。不幸的是,再周密的计划也常常会出错。

private static Map<String, Object> parseCatalogXml(String catalogName) {

SAXParserFactory factory = SAXParserFactory.newInstance();

CatalogHandler handler = new CatalogHandler();

try {
SAXParser parser = factory.newSAXParser();
File file = new File(catalogName + ".xml");
if (!file.exists()) {
throw new IllegalStateException("Unable to find file: " + file.getName());
}
parser.parse(file, handler);
} catch (SAXException ex) {

} catch (ParserConfigurationException ex) {

} catch (IOException ex) {

}

return handler.getConfigMap();

}

在 IDE 中使用 new File("").getAbsolutePath() 或在命令行上使用 maven 都不起作用。

最佳答案

我认为这是一个类路径/工作目录问题@Jason。即使您的文件“全部位于同一个包中”,但这并不意味着 Java 正在该目录中运行。

您最可能需要做的是将 XML 文件移动到另一个“源文件夹”(Eclipse 语言)。在我的项目中,我的源代码位于:

src/main/java

以及我的 XML 和其他配置文件:

src/main/resources

然后您可以在类路径顶部找到 XML 文件,如下所示:

ClassLoader.getSystemResourceAsStream(catalogName + ".xml");

关于Java 文件未找到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8082732/

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