我已将我的应用程序部署到jar文件。当我需要将数据从一个资源文件复制到jar文件外部时,请执行以下代码:
URL resourceUrl = getClass().getResource("/resource/data.sav");
File src = new File(resourceUrl.toURI()); //ERROR HERE
File dst = new File(CurrentPath()+"data.sav"); //CurrentPath: path of jar file don't include jar file name
FileInputStream in = new FileInputStream(src);
FileOutputStream out = new FileOutputStream(dst);
// some excute code here
我遇到的错误是:URI is not hierarchical。在IDE中运行时,我不会遇到此错误。
如果我将上述代码更改为对StackOverFlow上其他帖子的一些帮助,请执行以下操作:
InputStream in = Model.class.getClassLoader().getResourceAsStream("/resource/data.sav");
File dst = new File(CurrentPath() + "data.sav");
FileOutputStream out = new FileOutputStream(dst);
//....
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) { //NULL POINTER EXCEPTION
//....
}
你不能做这个
File src = new File(resourceUrl.toURI()); //ERROR HERE
它不是文件!从ide运行时,不会有任何错误,因为你没有运行jar文件。在IDE中,类和资源被提取到文件系统上。
但是你可以通过InputStream
以下方式打开一个:
InputStream in = Model.class.getClassLoader().getResourceAsStream("/data.sav");
删除"/resource"
。通常,IDE在文件系统类和资源上分开。但是创建jar时,它们会全部放在一起。因此,文件夹级别"/resource"
仅用于类和资源分离。
当从类加载器中获取资源时,必须指定该资源在jar中的路径,即真正的包层次结构。
我使用grails已经快一年了。从现在开始,我想在gsp中链接css或js文件。我做了以下几件事: > 我在web-app文件夹下创建了一个新文件(例如资源文件),并将所有文件夹放在那里(例如导入bootstrap时,我在资源下有一个父文件夹bootstrap,在bootstrap下有css、img和js文件夹及其文件)。 然后,为了导入一个css文件,我做了以下操作(以下是相关文档): 这非常有
问题内容: 在Java中,我可以为位于硬盘驱动器本地的文件创建URI吗?如果是这样,应该如何构造? 问题答案: 查看文件文档: File具有构造函数,该构造函数将URI作为参数,并且如果您想从现有文件中获取URI ,它也具有方法。您可以玩这个游戏,以了解应该如何做。 您还可以阅读有关URI(不是Java术语)的信息。维基百科中有一个示例: 文件:///home/username/RomeoAndJ
我写了一个程序,但当我的朋友尝试执行它时,它抛出filenotfound异常,但文件存在,这是我的代码,在文件夹中有lib文件夹、jar文件和“csv fajlok”,在csv fajlok文件夹中有2个csv文件
默认情况下 Nuxt 使用 vue-loader、file-loader 以及 url-loader 这几个 Webpack 加载器来处理文件的加载和引用。对于不需要通过 Webpack 处理的静态资源文件,可以放置在 static 目录中。 Webpack 构建 默认情况下, vue-loader自动使用 css-loader 和Vue模板编译器来编译处理vue文件中的样式和模板。在此编译过程中
警告:不推荐使用属性,它对生成过程没有影响。/home/midhilaj/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/be3106efb0df111fe5a3f7b356dd070b/res/values/values.xml错误:(246,5)错误:resource android:找不到attr/fontvaria
大家晚上好。我是一个使用Java编程的完全初学者,我正在学习“扫描仪”,但是当我在Eclipse中键入这个基本代码时,我收到一条消息说“资源泄漏:‘扫描仪’永远不会关闭。 我做错了什么?