我有一个可运行的jar文件,无法访问位于默认src目录之外的资源。根据我的理解,这两门课的区别是什么。getResource()和ClassLoader。getResource(),我应该能够访问root/res/img/img1。png(请参阅下面的文件夹设置),方法是使用以下getResourceFile函数:
public class Foo {
private static final ClassLoader CLASS_LOADER = Foo.class.getClassLoader();
public static File getResourceFile(String relativePath) {
// Since I'm using getClassLoader, the path will resolve starting from
// the root of the classpath and it'll take an absolute resource name
// usage: getResourceFile("img/img1.png")
// result: Exception in thread "main" java.lang.NullPointerException
return new File(CLASS_LOADER.getResource(relativePath).getFile());
}
}
文件夹设置:
root/
src/
foo/
bar/
res/
img/
img1.png
audio/
audio1.wav
当我尝试执行jar可执行文件本身时,问题就出现了。然而,奇怪的是,我无法通过eclipse IDE复制它,它实际上能够正确解析路径。我已通过(Project-
在生成jar文件方面我是否缺少什么?解压jar文件时,img和音频目录位于根目录中(给定上述初始文件夹设置),一切似乎都井然有序:
foo/
/bar
img/
img1.png
audio/
audio1.wav
文件只能用于表示文件系统中的实际文件。一旦您将文件打包到JAR中,资源(img/img1.png)就不再是一个文件,而是JAR文件中的一个条目。只要您使用Eclipse中的文件夹结构,资源都是单独的文件,所以一切都很好。
尝试以下操作:
System.out.println(CLASS_LOADER.getResource(relativePath));
它将打印一个URL,但它不是指向文件系统中文件的有效路径,而是指向JAR文件中的条目。
通常,您只想读取资源。在这种情况下,使用
getResourceAsStream()
打开InputStream
。
我很难弄清楚这个问题,我几乎什么都试过了。 我希望我的程序从Jar文件中读取两个资源,并且它将在eclipse中运行良好。但是当我从命令提示符运行jar时,它会给出空指针异常。 结构: src/main/java/App。JAVA src/main/resources/properties/application。属性 src/main/resources/spring/applicationCo
我的项目结构 我能够生成JAR文件。并尝试从JAR文件位置执行以下命令 我得到下面的错误 注意:我知道这是重复的问题,但我已经通过了与此相关的所有过去的stackoverflow问题,但遗憾的是没有运气!
问题内容: 我在 项目根文件夹中* 有 hibernate.cfg.xml 文件。 * 如果我运行的应用程序包含: 它在方法中崩溃并显示以下消息: 无法找到cfg.xml资源[hibernate.cfg.xml] 输出 : 问题答案: 该 hibernate.cfg.xml的 文件应该被移动到 SRC 文件夹中。
我正在做一个项目,编译并运行我的IDE工作正常。所有资源都找到了,它正常工作。然而,当我构建我的. jar时,它能够找到一些资源,但不是全部。我的项目结构看起来是这样的: 当我运行jar文件时,它能够找到图像并使用它们,但是当我尝试访问html文件时,它不会打开。下面是jar的项目结构; 我以前从未处理过jar文件,所以这似乎是我犯的一个非常明显的错误。感谢您的帮助,谢谢! 编辑:访问找不到的文件
我使用的是NetBeans IDE 8.2。这是我正在使用的代码: 加载到cats阵列中的图像位于名为“img”的src文件夹中,编号为1-6。当我从NetBeans IDE运行程序时,它运行得非常完美;然而,当我试图在构建项目后创建的dist文件夹中执行JAR文件时,它根本不会运行。当我尝试使用命令行运行它时,我得到以下结果: 我假设问题是JAR文件无法访问图像文件,但我不知道如何修复它。如何将
我的身材。gradle文件,我使用的是kapt,而不是java的注释处理器 exportSchema设置为true的My RoomDatase基类 数据库方案get已导出并保存为json文件[1]:https://i.stack.imgur.com/r3Iew.png 但我的迁移测试还是会出错 我已经尝试了这里的所有stackoverflow解决方案,如: