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

标签 java netbeans jar

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

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

 jta.append("\ntile 目录的类路径是:"
            +“\n\t”+tileDirectory.getPath());

    jta.append("\ntile目录可读:"+tileDirectory.canRead());

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

最佳答案

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

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

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

获取输入流,或者

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

获取 URL。

关于java - Netbeans 中的目录可读,但从 JAR 文件运行时不可读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13614499/

相关文章:

java - 为什么我的文件名在“打开项目”对话框中被截断 (NetBeans)

java - 下拉菜单打开 Bat 文件

java - 调试 eclipse/jdt jar 文件中的类方法

java - Java 中哪种排序集合实现的内存占用最小?

java - java 注释等的用例

java - NetBeans 生成的 Jar 未运行,尽管它从 IDE 运行

java - 找出 pentaho kettle 中的一个步骤需要哪些 Jars

java - Jersey :如何使用自定义 `ExceptionMapperFactory`

java - ArrayList 是有效的 @ModelAttribute 吗?我怎样才能创建一个填充它的表单?

java - 从 .jar 文件获取图像