【问题标题】:Netbeans Built .jar doesn't work with class file insideNetbeans Build .jar 不适用于内部的类文件
【发布时间】:2010-12-16 21:21:17
【问题描述】:

I had problems while finding the path of file(s) in Netbeans.

问题已解决(已检查答案)。

今天我注意到另一个问题:项目完成后, 我必须执行生成的 .jar 来启动程序,但它不起作用,因为发生错误:NullPointer (where to load a file) when access/openning jar outside Netbeans。

是否可以使用 Java/Netbeans 中的类文件打开一个文件,该文件适用于 Netbeans 甚至任何目录?

我已经在网站上找到了一些关于我的问题的主题,但没有一个有用。

代码:

File file = new File(URLDecoder.decode(this.getClass().getResource("file.xml").getFile(), "UTF-8"));

【问题讨论】:

    标签: java netbeans jar


    【解决方案1】:

    您遇到的问题是 File 仅引用文件系统上的文件,而不是 jar 中的文件。

    如果您想要更通用的定位器,请使用 getResource 提供的 URL。但是,通常你不需要知道文件的位置,你只需要它的内容,在这种情况下你可以使用 getResourceAsInputStream()

    这一切都假设您的类路径配置正确。

    【讨论】:

      【解决方案2】:

      是的,您应该能够将文件加载到文件系统上 java 进程可以访问的任何位置。您只需要在 getResource 调用中明确设置路径。

      例如:

      File file = new File(URLDecoder.decode(this.getClass().getResource("C:\\foo\\bar\\file.xml").getFile(), "UTF-8"));
      

      【讨论】:

      • 如何直接设置绝对路径?我也必须在其他系统上完成这项工作,所以这不是我的解决方案。
      • 不是和 File file = new File("C:\\foo\\bar\\file.xml"); 一样吗
      猜你喜欢
      • 2016-10-20
      • 2012-10-27
      • 2010-12-12
      • 1970-01-01
      • 2014-10-02
      • 2013-03-08
      • 2014-01-17
      • 2013-07-25
      • 1970-01-01
      相关资源
      最近更新 更多