首页 文章

访问Java项目中的文件

提问于
浏览
0

我有一个使用第三方应用程序的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/jar/File.lic"); getClass() . getResourceAsStream("/File.lic");

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

  • getClass() . getResourceAsStream("../../../resources/File.lic"); getClass() . getResourceAsStream("/File.lic");

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

2 回答

  • 0

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

  • 0

    First, you need to ensure that the JAR is added in your class path .

    下面应该工作 .

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

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

相关问题