繁体   English   中英

如何在运行Java应用程序时使用classloader将目录指定为classpath以读取其中的文件?

[英]How to specify the directory as classpath in order to read a file in it using classloader while running java application?

假设目录dir存在文件abc.txt 我正在尝试使用以下命令运行Java应用程序java -cp dir;myjar.jar com.example.Main

在Main class中,我试图像getClass().getResource("/abc.txt")这样访问此文件。 但这返回null。 我不确定这是怎么回事。 任何指针将不胜感激。

由于该文件位于classpath目录的根目录中,因此您需要使用"/abc.txt" ,否则它将在package文件夹中查找有问题的类。

就像getResource的javadoc一样:

在委派之前,使用以下算法从给定资源名称构造绝对资源名称:

  • 如果name与开始'/''\/' ),则资源的绝对名称是所述的部分name之后的'/'

  • 否则,绝对名称的格式如下:

     modified_package_name/name 

    其中modified_package_name是此对象的软件包名称,用'/'代替'.' '\.' )。

暂无
暂无

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

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