我已经能够将资源加载到NetBeans和JAR文件中,例如ImageIcons,但是今天,当从JAR文件运行程序时,我无法从同一目录中“读取”。我想在类路径目录中列出目录和文件,但是当我从JAR文件运行程序时,该目录变得不可读。它在Netbeans中工作正常。tileDirectory = new File(TileDirectoryLister.class.getResource("/resources/images/tiles").getPath());
ojit_pre
从Netbeans运行时,它会显示true;从JAR文件运行时,它会显示false。当我从JAR文件运行时,为什么canRead
打印false
?
最佳答案
文件表示文件系统上的路径。您的图标位于jar文件中。您不能使用文件来访问它们。
要访问jar文件中的某些资源,只需使用
SomeClass.class.getResourceAsStream("/resources/images/tiles/SomeIcon.png");
获得一个InputStream,或者
SomeClass.class.getResource("/resources/images/tiles/SomeIcon.png");
获取网址。
关于java - Netbeans中的可读目录,但从JAR文件运行时则不是,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13614499/