当前位置: 首页 > 知识库问答 >
问题:

创建包含外部文件的可运行Jar

沈皓君
2023-03-14

我想用Java构建一个可运行的jar。我需要在jar中包含一些文件,这样当我执行jar时,文件就会自动从java类中读取。因此,我在项目中创建了一个文件夹,并从项目中引用了这些文件。我按照一些教程创建了jar文件,但我不能在我的jar文件中包含这些外部文件。请允许我使用外部文件创建可运行的jar。

Test
|
|
-------src
|        |
|        default package
|                      |
|                      |
|                      test1.java
|
 -------FileFOlder
|              |
|              | 
|              abc.txt
public class test1 {


public static void main(String[] args) throws IOException {


    char [] read = new char[20];
    String path = new File(".").getCanonicalPath();
    path = path+"\\Newfolder\\abc.txt";
    System.out.println(path);
    File nF = new File(path);
    FileReader fR = new FileReader(nF);
    fR.read(read);
    for(char c : read){
        System.out.print(c);
    }
    fR.close();
    System.out.println(" Hi..This is test program ");
}

}

当我使用eclipse导出选项创建可执行jar时,我无法看到jar内部的FileFolder目录。请给我一些有关这方面的信息。

共有1个答案

卫宏硕
2023-03-14

下面是你应该做的:

将该文件放回jar文件中。使用class.getResourceasStream()来读取它,而不是filefileReader。下面是如何做到这一点的解释:如何在Java中真正从类路径读取文本文件

 类似资料:
  • 我想用Java构建一个可运行的jar。我需要在jar中包含一些文件,这样当我执行jar时,文件就会自动从java类中读取。因此,我在项目中创建了一个文件夹,并从项目中引用了这些文件。我按照一些教程创建了jar文件,但我不能在我的jar文件中包含这些外部文件。请允许我使用外部文件创建可运行的jar。 当我使用eclipse导出选项创建可执行jar时,我无法看到jar内部的FileFolder目录。请

  • 嗯,我尝试了这么多的方法来创建可执行jar,但4个小时后我放弃了。我正在尝试用我的项目制作可执行的jar文件,其中主类在控制器中。基本上,我尝试使用export/runnable JAR文件,并使用各种选项,包括生成ant脚本。我在终端总是有类似的错误 当我用终端运行时 java-jar fruitstore.jar 提前感谢您的迅速回复

  • 我在NetBeans下开发了一个JavaFX应用程序,需要JRE8u60和一些外部库(jar和dll)以及一个“SQLite”数据库文件才能运行。我正在寻找一种方法来创建一个可执行文件或安装程序,它包括(或安装)这个版本的JRE和所需的库。 首先,我尝试了NetBeans本机打包程序,如https://NetBeans.org/kb/docs/java/native_pkg.html#fx所示,但

  • 我正在尝试创建一个包含以下项目内容的jar文件 项目 user_interface(包文件夹,包括与GUI相关的所有.类) function_operations(包文件夹,包括与操作相关的所有.类) 声音(文件夹包括所有声音文件) 图标(包括所有图像和图标) jar(包括所有外部jar文件) manifest.txt(有一行*main-class:user_interface.messenger

  • 问题内容: 根据我的阅读,执行以下命令时: 然后,将忽略主类路径,并从清单文件中获取类路径。 此外,在命令行上声明的类路径也将被忽略。所以在: /usr/local/jar/foobar.jar被忽略。 最后,我读过清单文件在jar文件中只能包含相对路径。 因此,如何包含系统上存在的外部jar的绝对路径,而不是正在执行的jar文件中的绝对路径? 问题答案: 您是否有理由避免像这样调用主类 ? 这种

  • 问题内容: 我每天都在“测试”文件夹下写入文件。例如: 我在创建的LOGS表中看不到任何数据。 但是,我使用创建表 我可以看到那几天的记录。 我想在我的HIVE表中的/ test目录下查看所有数据,而且/ test目录每天都填充有新文件。 问题答案: 选项1 为了支持子目录 如果您的Hive版本低于2.0.0,那么 选项2 创建一个分区表 如果使用标准约定保留目录,例如,而不是保留目录,将更易于管