[英]file not found exception in jar
public class ABC {
public ABC() {
File file = new File("xyz.xml");
但是當我如下運行我的罐子時:
java -jar filename.jar arguments....
然后顯示錯誤:
java.lang.IllegalArgumentException: InputStream cannot be null
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:120)
at com.ensarm.niidle.web.proxy.ABC.<init>(ABC.java:47)
我該如何解決?
如果需要在JAR中讀取文件內容,則不能直接使用File類。 使用ClassLoader加載它:
//例如,讀取默認包中的SeleniumConfiguration.xml
InputStream input = SeleniumConfiguration.class.getResourceAsStream("/SeleniumConfiguration.xml");
NullPointerException明確表明未找到該文件。
InputStream input = ABC.class.getResourceAsStream(“ / Element.xml”);
您的XML文件在哪里? 如果將其放置在與ABC.class相同的包(jar文件中的目錄)中,則它應該是Element.xml
且不帶反斜杠。
通常,您可以按照建議使用InputStream,但是如果您想對文件進行進一步的非Java操作(例如,使用外部應用程序對其進行解密),則可以使用FileOutputStream將此流寫入文件,然后使用其路徑作為正確的路徑文件路徑。 簡而言之,您可以將該文件解壓縮到文件系統中。
您是否將xml文件放在jar文件的根目錄下? 如果使用“ /Element.xml”之類的路徑,則jar文件結構應類似於:
jar文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.