我正在使用 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 question和 this question关于访问 jar 中的文件,他们都建议暂时提取文件。不过我不想那样做。
最佳答案
如果它在 JAR 中,一般来说它不是文件。您应该使用 Class.getResourceAsStream(String)
加载数据,或类似的东西。
关于java - 如何访问 jar 中的配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/944610/