【问题标题】:Loading Properties from a JAR file (java 1.6)从 JAR 文件加载属性 (java 1.6)
【发布时间】:2014-11-17 21:45:21
【问题描述】:

我在 jar 中手动注入了一个属性文件。 如何从 java 1.7 之前的 jar 文件加载属性? 我尝试了很多解决方法,但到目前为止都没有奏效。

关于它有很多问题,但一切都集中在 java 1.7 中的 ClassLoader 方法上。

【问题讨论】:

  • @SajanChandran 不,不是,OP 要求不要使用ClassLoader 的方法,这是您链接中的发帖人想要的
  • 如果您看到问题中给出的解决方案,它完全回答了问题(没有使用 Classloader)
  • @SajanChandran 重复项不是由答案标记,而是由问题标记(或者我弄错了吗?)

标签: java jar java-6


【解决方案1】:

从某个班级,调用:

getClass().getResourceAsStream("/path/to/props.props")

确保路径与类路径位置匹配。

【讨论】:

  • 这就是我之前说的。 java 1.7之前的Object中没有getClass()这样的方法
  • 每个对象早在 java 1.7 之前就有方法 getClass()
【解决方案2】:

当您在类路径或 jar 文件中有一个属性文件时,它就成为一个资源。任何其他情况都是一个简单的文件。

在打包 jar 文件之前,您需要做的是将属性文件所在的文件夹(即 myproject/src/main/resources/)添加到您的类路径中,然后无论您在哪里执行

Properties properties = new Properties(); 
properties.load(MyClass.class.getResourceAsStream("/yourPropsFileName"));

它会加载它!

不过,如果您使用的是外部属性文件,您也可以使用以下方法加载它:

Properties properties = new Properties();
properties.load(new FileInputStream("extenalPropsFileLocation"));

希望对你有帮助!

【讨论】:

  • java如何确定资源的路径?如果我把它没有任何目录,只是将原始复制粘贴到 jar 中怎么办?
  • 你是如何创建你的 jar 的?你使用的是 maven 还是类似的?
  • 不,只是标准的 jar 导出。这是一个非常简单的程序。
  • 但是我稍后会注入这个属性文件,这就是问题所在。我不能这样解决。
  • 我收到一些奇怪的错误,关于 cannot load map$entry X_x'
猜你喜欢
  • 2014-12-30
  • 1970-01-01
  • 2010-09-24
  • 2011-02-18
  • 2017-12-06
  • 1970-01-01
  • 2012-03-10
  • 1970-01-01
相关资源
最近更新 更多