访问Java项目中的文件

时间:2012-11-20 17:33:27

标签: java eclipse file-io

我有一个使用第三方应用程序的Java项目。我有许可证文件(.lic格式)存储在资源文件夹中。在运行Ant脚本时,它会将此文件复制到/ lib / jar目录中,因为它将项目汇总到Jar文件中以在服务器上使用。这是我在运行系统时需要访问该文件的地方。以下是文件夹结构的外观

MyProject
  src
    package
      AccessingClass.java
  resources
    File.lic
  lib
    jar
      File.lic (upon copy from Ant)

我不确定最好的方法,所以除了我一直在尝试的任何建议可能会有所帮助。第三方项目在类中有一个方法,如License.setLicense(),它可以将String带到该位置或该文件的InputStream。

我一直在玩它输入一个InputStream,但在调用getClass()时总是得到一个空值.getResourceAsStream()。以下是我尝试过的所有内容:

  • 的getClass()的getResourceAsStream( “../../../ LIB /罐/ File.lic”);        。的getClass()的getResourceAsStream( “/ File.lic”);

作为备份我也尝试过(对于本地构建,我想我会尝试资源文件夹):

  • 的getClass()的getResourceAsStream( “../../../资源/ File.lic”);        。的getClass()的getResourceAsStream( “/ File.lic”);

有更好的方法来执行此操作吗?或者有人能够告诉我为什么我的尝试失败了?提前谢谢。

2 个答案:

答案 0 :(得分:0)

首先,您需要确保在类路径中添加了JAR

下面应该可以工作。

  InputStream inputStream = 
    getClass().getClassLoader().getResourceAsStream("/resources/File.lic");

假设File.lic放在jar的根文件夹中。

答案 1 :(得分:0)

您是单独运行此代码还是在IDE中运行env看起来像类路径问题。如果在命令提示符下运行,则必须将classpath设置为lib dir,如果在ide中确保资源dir在classpath中。