有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jar中未找到java文件异常

public class ABC {
    public ABC() {
        File file = new File("xyz.xml");

但当我按如下方式运行我的jar时:

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)

我怎样才能修好它


共 (4) 个答案

  1. # 1 楼答案

    您是否将xml文件放在jar文件的根目录下?如果使用类似于“/Element.xml”的路径,jar文件结构应该如下所示:

    jar文件

    • com
    • META-INF
    • 元素。xml
  2. # 2 楼答案

    NullPointerException明确表示未找到该文件

    InputStream input=ABC.class.getResourceAsStream("/Element.xml");

    您的XML文件在哪里?如果您将它与ABC放在同一个包(jar文件中的目录)中。类,则它应该是Element.xml,不带前导斜杠

  3. # 3 楼答案

    通常,您可以按照建议使用InputStream,但如果您想对文件执行进一步的非java操作,例如使用外部应用程序对其进行解密等,则可以使用FileOutputStream将此流写入文件,然后将其路径用作正确的文件路径。简单地说,您可以取消将此文件绑定到您的文件系统

  4. # 4 楼答案

    若需要读取JAR中的文件内容,则不能直接使用file类。 使用ClassLoader加载它:

    // for example read the SeleniumConfiguration.xml in the default package

    InputStream input = SeleniumConfiguration.class.getResourceAsStream("/SeleniumConfiguration.xml");