Java代码在Netbeans IDE中构建和清理后无法找到资源文件



我真的需要你的帮助来解决我自己的问题。现在,我正在处理小代码应用程序。在该项目文件夹中包含一些资源文件(*.xlsx, *.png,…)。我把它们放在当前文件夹与代码文件。我只是想知道,当我在netbean ide中运行我的代码时,它只是工作。

在我构建代码项目之后,我在"dist"目录下得到一个jar文件。我运行它。它正常打开,因为应用程序使用JFrame作为用户界面。然而,当我执行该应用程序的某些功能时,它会显示错误日志。下面是错误信息:

java.io.FileNotFoundException: 
srcsample.xlsx (The system cannot find the path specified)

外面出什么事了?

下面是我的一些代码:

copyFile(new File("src\sample.xlsx"),
new File(txtout.getText()+"\sample.xlsx"));

Node: copyFile函数用于从源文件复制到dest。

以下是我在Netbean IDE中的项目文件夹结构:

  1. 项目名称
    • 源代码开放(src)
      • myClass.java, sample.xlsx等

    首先,永远不要直接引用src,一旦程序构建完成,该目录将不存在。其次,您不能通过File引用访问嵌入到应用程序上下文中的资源,它们在文件系统中不再存在。

    您需要使用Class#getResourceClass#getResourceAsStream

    URL url = getClass().getResource("/sample.xlsx");
    InputStream is = getClass().getResourceAsStream("/sample.xlsx");
    // Don't forget to manage your streams appropriately...
    

    你可以在src文件夹下创建一个名为resources的文件夹,把你的资源放在里面,并通过使用getResourceAsStream()getResource()方法在你的代码中使用它们,这些方法可以访问嵌入的资源。Clean and Build将编译代码并将资源文件夹的内容嵌入到应用程序的.jar文件中。资源访问方式:

        String pathToImage = "resources/images/filling.png";
        InputStream stream= ClassName.class.getResourceAsStream(pathToImage );
       String pathToImage = "resources/images/filling.png";
       InputStream stream= ClassName.class.getResource(pathToImage );
    

    请参考链接信息

    相关内容

    • 没有找到相关文章