我已经能够在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
?
答案 0 :(得分:1)
文件表示文件系统上的路径。您的图标位于jar文件中。您无法使用文件来访问它们。
要访问jar文件中的某些资源,只需使用
即可SomeClass.class.getResourceAsStream("/resources/images/tiles/SomeIcon.png");
获取InputStream或
SomeClass.class.getResource("/resources/images/tiles/SomeIcon.png");
获取网址。