【问题标题】:How to iterate through resource files REGARDLESS of execution from Eclipse or jar无论从 Eclipse 或 jar 执行如何遍历资源文件
【发布时间】:2015-09-28 18:30:52
【问题描述】:

我得到了一个在 Eclipse 中运行良好的现有程序,我想编译它以进行分发。我在 Eclipse 和 jar 中访问单个资源文件都没有问题。

但是,该程序遍历文件夹中的一堆文件,我无法弄清楚如何复制逻辑,因此它可以在 Eclipse 中运行 both一个罐子。

一些原始代码,根据要求:

File[] baseFiles = baseFolder.listFiles();
for (int i = 0; i < baseFiles.length; i++) {
    String fileName = baseFiles[i].getName();
    if (!baseFiles[i].isDirectory() && fileName.toUpperCase().endsWith(XML)) {
        // process file
    }
}

我尝试了一些东西。 . .没有全部记录下来。这个给了我一个空枚举:

    final Enumeration < URL > oneTime = getClass ( )
          .getClassLoader ( )
          .getResources ( basefolder ) ;

针对其他 cmets - 特别是这是否与其他问题重复 - 我已修改标题以使其更清晰

【问题讨论】:

  • 你能提供更多细节吗?什么是“逻辑”,到目前为止您尝试过什么?
  • 请显示使用一些代码。在 Java 中加载文件或资源的方法有很多种。没有代码我们无法提供帮助(最好有一些例外)。
  • 欢迎来到 Stackoverflow!
  • 简短的回答是,这很困难(之前已经被问过很多次了)。本质上,您需要创建一个文本文件,其中包含 jar 中文件的路径/名称。这可以在构建时动态构建,也可以手动管理。在运行时,您将使用 Class#getResource 读取此文件,现在您有了文件列表
  • 哎呀!我很惊讶这不是标准的——毕竟它应该和将单个文件作为资源访问一样简单——而且无论你是在 Eclipse 中还是从 jar 中执行,这都是透明的。

标签: java eclipse executable-jar


【解决方案1】:

根据我所见(尤其是 MadProgrammer 的代表),答案是:

基本上,您需要创建一个文本文件,其中包含 jar 中文件的路径/名称。这可以动态构建 构建时间,或者您可以手动管理它。在运行时,你会 使用 Class#getResource 读取这个文件,现在你有一个列表 文件

【讨论】:

    猜你喜欢
    • 2012-12-07
    • 2018-04-16
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    相关资源
    最近更新 更多