【发布时间】: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