当前位置:  开发笔记 > 编程语言 > 正文

如何将资源文件打包到可运行的jar中

如何解决《如何将资源文件打包到可运行的jar中》经验,为你挑选了1个好方法。

我已经在很多方面尝试了这个,并遵循了几个在线指令,比如这个 - Eclipse导出的Runnable JAR没有显示图像 但到目前为止,没有成功.

我有一个非常简单的程序,它读取文本文件(test.txt)并将其内容打印到标准输出.我正在使用Eclipse.这是我所做的 -

我把文本文件放到一个名为'resources'的文件夹中

我右键单击资源文件夹,选择"构建路径"并点击"用作资源文件夹"

在我的代码中,我尝试了两种方式来处理文件 - (a)作为"/test.txt",(b)作为"resources/test.txt.后一种方法在Eclipse中运行程序时有效.但是,当我将项目导出为可运行的jar文件时,该方法有效.资源文件夹无法包含在jar文件中.

任何帮助都感激不尽.

附录:这是代码.

public class FileIOTest {

public static void main(String[] args) {
    String line;
    try {
        BufferedReader br = new BufferedReader(new FileReader(new File("/test.txt")));
        while((line = br.readLine()) != null){
            System.out.println(line);
        }

    br.close(); 
    }
    catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}

}

}



1> Mad Physicis..:

您无法通过a访问Jar文件中的资源,FileReader因为它不是文件系统上的文件.Java确实有一种机制来访问类路径中的资源(包括在Jars中):ClassLoader.getResourceAsStream().您可以将它与默认的类加载器一起使用:

BufferedReader br = new BufferedReader(new InputStreamReader(
                        ClassLoader.getSystemClassLoader()
                                   .getResourceAsStream("resource/test.txt")));

请注意,getResourceAsStream返回null而不是抛出异常,因此您可能希望首先获取流,检查是否为null,然后抛出异常或处理它.

您将希望在jar中提供完整路径作为路径.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有