在资源中添加docx文件并创建可执行jar

时间:2013-08-21 15:46:21

标签: java jar uri

我想添加

    资源文件夹中的
  • docx文件,使用位于同一应用程序的另一个包中的类中编写的代码中的那些文件。
  • 然后我想制作一个可执行的jar,它将在windows上运行。

我读到制作这样的罐子并不容易:(并且没有傻瓜式的方式......

我试过在网上搜索它,发现我必须创建URL然后文件然后使用它... 但是,当我使用下面的代码时,我无法获得URL本身......

URL urlOfDraftInSamePackage = CreateDraft.class.getResource("Draft_in_same_package.docx");
        System.out.println("urlOfDraftInSamePackage is "+urlOfDraftInSamePackage.toString());

//打印:urlOfDraftInSamePackage是文件:/ D:/aditya_workspace/SampleDraftMaker/bin/draftProcessing/Draft_in_same_package.docx

URL urlOfDraftInResourceFolder = CreateDraft.class.getResource("resouces/Draft_Apartment.docx");
        System.out.println("urlOfDraftInResourceFolder is "+urlOfDraftInResourceFolder.toString());
        //this gives null pointer exception
        URI uri = null;
        try {
            uri = urlOfDraftInSamePackage.toURI();
            File file = new File(uri);
            System.out.println("file made");
        } catch (URISyntaxException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
下面的

是我的文件夹结构:

my project folder structure and class path

任何人都可以帮助我使用eclipse创建这样的可执行jar吗?

提前致谢!!!

retrying to upload image of folder structure

1 个答案:

答案 0 :(得分:0)

以下代码适用于我:

public static void testResource() throws IOException {
    InputStream stream = Deserializace.class.getResourceAsStream("resources/ser.log");
    BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
    String s;
    while ( (s = reader.readLine()) != null) {
        System.out.println(s);
    }
}

构建目录结构:

Test.class
resources/ser.log

您必须确保将资源目录复制到正确的位置。