繁体   English   中英

如何在jar中导入文件?

[英]How import a file in a jar?

我有这个项目,它具有这种结构

Home
 graphics
    field.txt
    example.java

我需要在jar的example.java中加载field.txt,并且使用:

getClass().getClassLoader().getResource("field.txt").toUri();

但是这段代码给了我“空指针异常”。有人可以帮助我吗?

要读取它必须在类路径中的文件,可以将该文件放入包含.class文件的文件夹中,或者使用java -cp选项将其添加到类路径中。

example.class.getResource(“/graphics/field.txt“);

该类应该属于同一个jar。 对于Class.getResource,可以使用相对的“ field.txt”(相同的程序包)。 使用ClassLoader,将寻求所有类路径的绝对路径:“ graphics / field.txt”。

要立即阅读(从来不写)使用getResourceAsStream或的URI getResource 可以在URI上使用路径。 Files.copy(...)


一个人至少不能不应该写一个资源文件(因为它可以驻留在jar中jar:file://... ;甚至jar可能被密封了; jvm可能会缓存资源)。 将其保留为只读模板。 从不File

一种技术是在System.getProperty("user.home")创建一个名为directory的应用程序,然后在其中复制模板。

问题不在于您的代码,而在于您如何构建和打包jar文件。 您将需要澄清当前如何构建jar(使用ant,maven,eclipse等?)。

许多文章还建议您将资源与源代码(.java)分开,并且许多IDE将允许您将文件夹标记为资源文件夹来支持这种分离的方式。 甚至maven都可以让您自定义。

请参阅以下文章:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM