1

我已经能够在 Netbeans 和 JAR 文件(例如 ImageIcons)中加载资源,但是今天从 JAR 文件运行我的程序时,我无法从同一目录“读取”。我想列出类路径目录中的目录和文件,但是当我从 JAR 文件运行程序时,目录变得不可读。它在 Netbeans 中运行良好。

tileDirectory = new File(TileDirectoryLister.class.getResource("/resources/images/tiles").getPath());

    jta.append("\nThe class path for the tile directory is:"
            + "\n\t" + tileDirectory.getPath());

    jta.append("\nThe tile directory is readable: " + tileDirectory.canRead());

从 Netbeans 运行时,它打印为 true;从 JAR 文件运行时,它会打印错误。为什么从 JAR 文件运行时canRead打印false

4

1 回答 1

1

File 表示文件系统上的路径。您的图标位于 jar 文件中。您不能使用文件来访问它们。

要访问 jar 文件中的某些资源,只需使用

SomeClass.class.getResourceAsStream("/resources/images/tiles/SomeIcon.png");

获取 InputStream,或

SomeClass.class.getResource("/resources/images/tiles/SomeIcon.png");

获取 URL。

于 2012-11-28T21:56:04.600 回答