Java代码在Netbeans IDE中生成和清理后找不到资源文件?
我真的需要你的帮助来解决我自己的问题。现在,我正在处理小代码应用程序。该项目文件夹中包含一些资源文件(*.xlsx,*.png,…)。我把它们和代码文件放在当前文件夹中。我只是想知道,当我在NetBeanIDE中运行我的代码时,它是否能正常工作 在我构建代码项目之后,我在“dist”目录中得到一个jar文件。我负责。由于应用程序使用JFrame作为用户界面,所以它正常打开。然而,当我执行该应用程序的某些功能时,它显示了错误日志。以下是错误消息:Java代码在Netbeans IDE中生成和清理后找不到资源文件?,java,swing,netbeans,file-io,Java,Swing,Netbeans,File Io,我真的需要你的帮助来解决我自己的问题。现在,我正在处理小代码应用程序。该项目文件夹中包含一些资源文件(*.xlsx,*.png,…)。我把它们和代码文件放在当前文件夹中。我只是想知道,当我在NetBeanIDE中运行我的代码时,它是否能正常工作 在我构建代码项目之后,我在“dist”目录中得到一个jar文件。我负责。由于应用程序使用JFrame作为用户界面,所以它正常打开。然而,当我执行该应用程序的某些功能时,它显示了错误日志。以下是错误消息: java.io.FileNotFoundExcep
java.io.FileNotFoundException:
src\sample.xlsx (The system cannot find the path specified)
外面怎么了
以下是我的一些代码:
copyFile(new File("src\\sample.xlsx"),
new File(txtout.getText()+"\\sample.xlsx"));
节点:copyFile功能用于将文件从源复制到目标
以下是我在Netbean IDE中的项目文件夹结构:
- 源包装(src)
- myClass.java、sample.xlsx等
首先,不要直接引用
src
,一旦程序构建,目录将不存在。其次,您不能通过文件
引用访问已嵌入应用程序上下文中的资源,因为它们在文件系统中已不存在
相反,您需要使用Class#getResource
或Class#getresourceastream
URL url = getClass().getResource("/sample.xlsx");
InputStream is = getClass().getResourceAsStream("/sample.xlsx");
// Don't forget to manage your streams appropriately...
首先,不要直接引用
src
,一旦程序构建,目录将不存在。其次,您不能通过文件
引用访问已嵌入应用程序上下文中的资源,因为它们在文件系统中已不存在
相反,您需要使用Class#getResource
或Class#getresourceastream
URL url = getClass().getResource("/sample.xlsx");
InputStream is = getClass().getResourceAsStream("/sample.xlsx");
// Don't forget to manage your streams appropriately...
您可以在
src
文件夹下创建一个名为resources
的文件夹,使用getResourceAsStream()
和getResource()将资源放入其中,并在代码中使用它们
可以访问嵌入资源的方法。清理并构建
将编译代码并将资源文件夹的内容嵌入到应用程序的.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 );
请参考信息您可以在
src
文件夹下创建一个名为resources
的文件夹,使用getresourceastream()
和getResource()将您的资源放入其中,并在代码中使用它们
可以访问嵌入资源的方法。清理并构建
将编译代码并将资源文件夹的内容嵌入到应用程序的.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 );
请参考信息谢谢。让我试试。对不起!!它仍然保持不变。顺便说一下,当我在WinRAR中打开jar文件时,我看到sample.xlsx也在其中。问题是我可以引用该文件吗?
sample.xlsx
不再是一个文件,而是由zip条目管理的一系列压缩字节。上面的示例是返回结果还是返回null
(或异常)?您好。我只是想澄清一下。你投了哪一票?@hims056哇,好吧,我想我选了“为什么这个代码不起作用”选项。让我试试。对不起!!它仍然保持不变。顺便说一下,当我在WinRAR中打开jar文件时,我看到sample.xlsx也在其中。问题是我可以引用该文件吗?sample.xlsx
不再是一个文件,而是由zip条目管理的一系列压缩字节。上面的示例是返回结果还是返回null
(或异常)?您好。我只是想澄清一下。你投了哪一票?@hims056哇,好吧,我想我选择了“为什么这个代码不起作用”选项希望,这个,能够在这个话题上有所帮助:-)@nIcEcOw,谢谢。希望这个,能够在这个主题上有所帮助:-)@nIcEcOw,谢谢。它在工作。