Java 如何创建一个可运行的jar,将文件和图像用作

Java 如何创建一个可运行的jar,将文件和图像用作,java,jar,resources,packages,Java,Jar,Resources,Packages,我想了解在使用内部文件时编写java项目的最佳或标准技术。确切地说,我想开发一个使用程序运行时所需的文本文件和图像的项目。我的目标是从项目中创建一个可运行的jar,用户不需要在其中查看所有这些文件。因此,我决定创建一个名为resources的包,并将其放入包含源代码的文件夹中。即,它与其他包处于同一级别。现在,在我的代码中,当我想使用图像时,我使用以下语句: URL URL=getClass().getResource(“/resources/image1.gif”); 它正在工作! 然后,要打

我想了解在使用内部文件时编写java项目的最佳或标准技术。确切地说,我想开发一个使用程序运行时所需的文本文件和图像的项目。我的目标是从项目中创建一个可运行的jar,用户不需要在其中查看所有这些文件。因此,我决定创建一个名为resources的包,并将其放入包含源代码的文件夹中。即,它与其他包处于同一级别。现在,在我的代码中,当我想使用图像时,我使用以下语句: URL URL=getClass().getResource(“/resources/image1.gif”); 它正在工作! 然后,要打开文本文件进行读/写,我使用以下命令:
字符串filename=“/resources/”+file1.txt; 现在,这不起作用,它抱怨找不到文件。我不知道该怎么办?
google搜索建议我将resources文件夹放在项目根目录中。它当时正在工作,但当我创建runnable jar时,我不得不将resources文件夹放在与jar相同的目录中。这意味着用户可以访问其中的所有文件。非常感谢您的帮助

您也可以对文件使用
getResource
方法

URL url = getClass().getResource("/resources/file1.txt");
try {
    File f = new File(fileUrl.toURI());
} catch (URISyntaxException e) {
    //dealing with the exception 
}

谢谢你的帮助。这对我还是不起作用!我有以下代码:String file=“resources/file1.txt”;java.net.URL URL=getClass().getClassLoader().getResource(文件);文件f=null;尝试{f=newfile(url.toURI());}catch(URISyntaxException e1){//TODO自动生成的catch块e1.printStackTrace();}String fileName=f.getAbsolutePath();System.out.println(“文件名:”+文件名);它在IDE中工作良好;我在Windows上使用Eclipse,但当我使用jar时,程序不会打印最后一条语句并停止。