Netbeans中的可读目录,但不是从JAR文件运行时

时间:2012-11-28 21:12:17

标签: java netbeans jar

我已经能够在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());

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文件运行时,它打印为false。 当我从JAR文件运行时,为什么打印canRead

1 个答案:

答案 0 :(得分:1)

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

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

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

获取InputStream或

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

获取网址。