簡體   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