导出到jar

时间:2015-12-16 11:13:14

标签: java file intellij-idea jar

我正在使用平铺制作libgdx游戏制作地图,在我的关卡选择屏幕中,我读取了地图文件夹中的所有文件,并计算以.tmx结尾的文件,看看如何我必须制作许多级别的按钮。

所有这一切都运行正常,但是当我尝试使用intellij gradle dist命令将项目导出到jar时,它就会停止工作。

我猜它在导出文件时改变了文件的路径,但我不知道如何解决它。

以下是读取文件的代码

        new File("maps").listFiles(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
            if (name.endsWith(".tmx")) {
                numberOfLevels++;
            }
            return true;
        }
    });

2 个答案:

答案 0 :(得分:0)

访问"地图"喜欢它可能不包含在jar文件中,但需要与jar在同一目录中。使用new File(...)您正在访问PC的文件系统,该系统无法找到"地图"在jar文件中编译的文件

答案 1 :(得分:0)

要计算jar中.tmx个文件的数量,请尝试将其视为zip并计算感兴趣的文件数量,如下所示:

List<String> classNames = new ArrayList<String>();
ZipInputStream zip = new ZipInputStream(new FileInputStream("/path/to/jar/file.jar"));
int numberOfLevels=0;
for (ZipEntry entry = zip.getNextEntry(); entry != null; entry = zip.getNextEntry()) {
    if (!entry.isDirectory() && entry.getName().endsWith(".tmx")) {
        numberOfLevels++;
    }
}