簡體   English   中英

在jar中找不到文件異常

[英]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文件

  • com
  • META-INF
  • Element.xml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM