java - java中的类路径变量

标签 java maven-2 jar classpath

我正在我的应用程序中读取一些文件并将它们称为 new File("src/main/resource/filename") 并且它有效。但是,当我使用 Maven 程序集插件打包 jar 并运行 java - jar 时,自然会出现错误:

Error occured: src\main\resources\UPDATE.txt (The system cannot find the path specified)

因为 jar 中没有 src/main/resources,我如何将 src/main/resources 引用为某种类路径变量,以便应用程序既可以在独立的 java 中运行,也可以在组装的 jar 中运行?

最佳答案

您需要使用 Class.getResourceAsStream() 方法加载文件

例如

InputStream str = getClass().getResourceAsStream("/UPDATE.txt");

或者如果你在静态方法中,那么显式指定类

InputStream str = MyApp.class.getResourceAsStream("/UPDATE.txt");

编辑:

使用StreamSource,只需将输入流传递到流源,例如

   new StreamSource(getClass().getResourceAsStream("/UPDATE.txt"));

但请注意,如果资源不存在,getResourceAsStream 将返回 null,因此您可能需要明确检查并抛出异常。

关于java - java中的类路径变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3237166/

相关文章:

java - 当存在多个版本化的 jar 时,我如何强制从特定版本化的 jar 调用方法

执行代码时显示java.lang.ClassNotFoundException : oracle. jdbc.internal.XMLTypeIntf 异常?

java - org.apache.hive.jdbc.HiveStatement/org.apache.hadoop.hive.jdbc.HiveStatement 之间的区别

java - 有没有办法从子包中访问类中 `args[0]`的值

java - 如何在按下鼠标时更改 JButton 颜色?

maven-2 - Maven2_Builder 与 Maven 项目生成器

java - 无法在项目 produit-webapp 上执行目标 org.apache.maven.plugins :maven-compiler-plugin:3. 1:compile (default-compile)

java - 这个 Maven 插件真的有一个无效的描述符吗?

java - 如何在 Notes Xpages 应用程序中添加外部第三方 jar?

Java在循环中实例化一个类