繁体   English   中英

在Java项目中访问文件

[英]Accessing a file within Java project

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

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

我不确定执行此操作的最佳方法,因此,除我一直尝试的方法外,其他任何建议都可能会有所帮助。 第三方项目在类如License.setLicense()中有一个方法,该方法可以将String移到文件的位置或InputStream。

我一直在为它提供InputStream,但在调用getClass()。getResourceAsStream()时总是得到null值。 这是我尝试过的一切:

  • getClass()。getResourceAsStream(“ ../../../ lib / jar / File.lic”); getClass()。getResourceAsStream(“ / File.lic”);

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

  • getClass()。getResourceAsStream(“ ../../../ resources / File.lic”); getClass()。getResourceAsStream(“ / File.lic”);

是否有更好的方法来执行此操作? 还是有人可以告诉我为什么我尝试的失败? 提前谢谢。

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

下面应该工作。

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

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

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

暂无
暂无

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

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