当前位置: 首页 > 面试题库 >

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

钱经赋
2023-03-14
问题内容

我正在使用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
}

当我罐子了一切并运行它作为一个罐子-它炸弹出来FileReader mappingFileReader = newFileReader(MAPPING_FILE);FileNotFoundException。该文件虽然在罐子里。

我该怎么办?

我已经看过这个问题以及关于访问jars中文件的问题,他们都建议暂时提取文件。我不想这样做。


问题答案:

一般来说,如果它位于JAR文件中,则不是文件。您应该使用Class.getResourceAsStream(String)或类似方式加载数据。



 类似资料:
  • 问题内容: 我想做一些我认为并不困难的事情。 我有一个要打包为jar的应用程序,因为我有大约30个依赖项,并且我希望能够部署一个文件。 我有一些配置文件-一个属性文件和一个spring配置文件,以及我的log4 props文件- 我想在jar外部使用。我想我希望,如果我将它们与jar放在同一目录中,它将在运行时找到它们,但事实并非如此。 在开发过程中,我将这些文件放在eclipse项目的类路径的根

  • 问题内容: 我有一个带有工具栏的Java项目,该工具栏上带有图标。这些图标存储在名为resources /的文件夹中,因此路径可能是“ resources / icon1.png”。该文件夹位于我的src目录中,因此在编译后,该文件夹将被复制到bin / 我正在使用以下代码访问资源。 (imageName将为“ resources / icon1.png”等)。在Eclipse中运行时,效果很好。

  • 我正在使用Maven Shade为一个Jetty项目创建一个shaded.jar文件。这个项目包括一些资源文件(文本属性文件),我想阅读。 如何访问上述。jar文件中的文件? 从文件提取工具查看jar中的当前文件夹结构如下所示: 我想访问名为的组合jar文件根中的文件。我想从创建的java类访问这个文件。 这里问到的关于访问jar文件的问题是:jar文件中的访问文件? 不能使用,因为它们不使用带阴

  • 问题内容: 嗨,我已经将我的Java项目导出为可执行jar文件。在我的项目中,我正在访问包含一些数据的Excel文件。现在,当我尝试访问Excel文件时,我将无法访问它。 我的项目结构是: Java_Project_Folder -src_Folder -resources_Folder(包含Excel文件) 我正在像访问Excel文件 我尝试使用以下方式访问此文件: 但是我进入的是空异常。有什么

  • 问题内容: 搜寻了几个小时后,就开始对此完全取笑。我还在网站上看到了该问题的各种变体,但似乎无法使其正常工作。JFrame需要从ini文件中读取数据,并且我已经创建了一种打开该文件的方法。所述文件存储在jar文件内称为资源的文件夹中。 当我在编译后运行代码时,这当然可以完美地工作,但是在导出到.jar文件后会引发异常。我已经研究过使用InputStream,FileInputStream,但似乎找

  • 问题内容: 我正在将Laravel用于Web应用程序。上传了生产过程中的所有内容,发现其中的某些文件可以通过url直接访问- 如何避免这种直接访问? 问题答案: 您使用的是错误的Web服务器配置。将您的Web服务器指向目录并重新启动它。 对于 Apache, 您可以使用以下指令: 对于 nginx ,您应该更改以下行: 完成此操作后,将不再可以从浏览器访问所有Laravel文件。