java - 如何访问 jar 中的配置文件?

标签 java jar

我正在使用 FlatPack从平面文件解析和加载数据。这需要加载存储平面文件列映射的配置文件。

我有一个常量来定义映射文件的位置:

private static final String MAPPING_FILE = "src/com/company/config/Maping.pzmap.xml";

我有一个实际执行解析的 parse(File dataFile) 方法:

private void parse(File dataFile) throws FileNotFoundException, SQLException {
        Parser parser;

        log.info("Parsing " + dataFile.getName());

        FileReader mappingFileReader = new FileReader(MAPPING_FILE);
        FileReader dataFileReader = new FileReader(dataFile);

        parser = DefaultParserFactory.getInstance().newFixedLengthParser(mappingFileReader, dataFileReader);
        parser.setHandlingShortLines(true);

        DataSet dataSet = parser.parse();

        //process the data
}

当我将所有内容打包并作为 jar 运行时 - 它会在 FileReader mappingFileReader = new FileReader(MAPPING_FILE); 上爆炸并出现 FileNotFoundException。不过该文件在 jar 中。

我如何获得它?

我看过this questionthis question关于访问 jar 中的文件,他们都建议暂时提取文件。不过我不想那样做。

最佳答案

如果它在 JAR 中,一般来说它不是文件。您应该使用 Class.getResourceAsStream(String) 加载数据,或类似的东西。

关于java - 如何访问 jar 中的配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/944610/

相关文章:

java - 创建没有依赖的jar A,并让依赖项目C下载这个依赖A所依赖的依赖B

java - Ubuntu:SWT 应用程序无法加载 GTK 库

java - 如何判断jedis是否被添加到类路径中?

java - Android - 从一个 Activity 中调用另一个 Activity 的方法,而不启动新 Activity

java - 解析 Int 使应用程序崩溃 android

java - 如何在 Hibernate 中序列化集合属性?

java - 在数组中搜索与其他数字不同的数字

java - 用于 bean 验证消息的 i18n

java - 从内部 jar 中的类路径加载资源

导出时 Java 应用程序出现意外行为