Java 在可运行jar文件中包含源文件

Java 在可运行jar文件中包含源文件,java,eclipse,file,jar,executable-jar,Java,Eclipse,File,Jar,Executable Jar,我必须用runnable jar文件创建安装程序,当jar文件运行时,它必须复制一些目录上的文件。我在java项目中包含了几个文件夹,如下图所示: 我必须将dcc、非接触式和vfsc5000文件夹粘贴到某些目录上 我正在使用这段代码: public class copyFiles { // private static final String MAIN_PATH = "C:\\Users\\Hamza\\Documents\\"; private static final Strin

我必须用runnable jar文件创建安装程序,当jar文件运行时,它必须复制一些目录上的文件。我在java项目中包含了几个文件夹,如下图所示:

我必须将dcc、非接触式和vfsc5000文件夹粘贴到某些目录上

我正在使用这段代码:

public class copyFiles {
  // private static final String MAIN_PATH = "C:\\Users\\Hamza\\Documents\\";
  private static final String MAIN_PATH = "resources";

  public static void main(String[] args) throws IOException {
    // file1: "Hello World!"
    FileUtils.copyDirectory(FileUtils.getFile(MAIN_PATH), // source
        FileUtils.getFile("C:\\Windows\\java\\classes\\postilion" + "contactlessVfsc5000\\")); // destination

  }
}
但当我导出runnable jar并在cmd中执行它时,它会抛出File not found异常,源代码“resources not existing”。这意味着jar没有导出这些文件夹。
请帮助我解决此问题。谢谢。

您必须使用以下步骤将所需文件夹添加到生成路径:

单击项目->属性->生成路径->源->添加文件夹

然后使用class.getResourceAsStream()来读取它,而不是使用File和FileReader


希望它能起作用!!:)

必须使用以下步骤将所需文件夹添加到生成路径:

单击项目->属性->生成路径->源->添加文件夹

然后使用class.getResourceAsStream()来读取它,而不是使用File和FileReader


希望它能起作用!!:)

您是否想过使用Windows installer或instashield等?它们更适合于此类任务,并且从长远来看更易于管理。您可以使用ant构建一个可运行的jar文件,例如,您是否计划在其他计算机上运行此.jar?除非您计划要求每个用户在其计算机上保留一份Eclipse项目的副本,您需要将所有这些文件嵌入.jar中。这意味着它们将不再作为常规文件访问;他们会的。@VGR是的,这就是我想要实现的。你能帮忙吗?你想过使用Windows installer或instashield等吗?它们更适合于此类任务,并且从长远来看更易于管理。您可以使用ant构建一个可运行的jar文件,例如,您是否计划在其他计算机上运行此.jar?除非您计划要求每个用户在其计算机上保留一份Eclipse项目的副本,您需要将所有这些文件嵌入.jar中。这意味着它们将不再作为常规文件访问;他们会的。@VGR是的,这就是我想要实现的。你能帮忙吗?