【问题标题】:Loading files from java jar file [duplicate]从java jar文件加载文件[重复]
【发布时间】:2013-08-26 14:47:50
【问题描述】:

您好,我被以下代码卡住了。我想从文件夹中获取文件,但是当我将项目导出到 jar 文件时,它不会有任何想法?

 public String getXSDfilenames() {
        String filenames= "";
        try {
            File currDir = new File(".");
            String path = currDir.getAbsolutePath();
            path = path.substring(0, path.length()-1);

             File file = new File(path+"src\\schemaFiles");     
            String[] files = file.list(new FilenameFilter() {
                public boolean accept(File dir, String name) {
                    return name.endsWith(".xsd");
                }
            });
            if (file.exists()) {
                for (int i = 0; i < files.length; i++) {
                    System.out.println(path+"src\\schemaFiles\\"+files[i]);
                filenames = filenames + files[i] + newline;
                }
            } else {
                System.out.println("No schema files founded in default folder!");
            }
        }
         catch (Throwable e1) {
        System.out.println(e1);
        }
        return filenames;
    }

}

【问题讨论】:

  • 您的代码也无法在 Unix 机器上运行。使用getResource 而不是通过硬编码路径与File 紧密联系。
  • 如果您准确定义“不起作用”的含义,通常会得到更好的响应。预期的结果是什么,会发生什么。

标签: java file jar iteration executable-jar


【解决方案1】:

如果您将 XXX.jar 文件的名称更改为 XXX.zip,然后在任何可用的 Zip 文件实用程序中打开它,您可以查看文件内部并查看 1. 您的文件是否包含在jar,如果是,2. 存储它们的实际路径。我强烈怀疑您的 jar 中现在有 src 文件夹。

另外,如果您不希望文件在 jar 中,那么您可能需要提供文件的绝对路径。

如果它们在罐子里,请检查以下问题:

load file within a jar,

How to use ClassLoader.getResources() correctly?,

How do I list the files inside a JAR file?

【讨论】:

猜你喜欢
  • 2011-07-18
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
  • 1970-01-01
  • 2014-11-17
  • 2018-06-03
相关资源
最近更新 更多