2009-07-21 128 views
2

我需要从Java桌面应用程序生成复杂的文本文件。将资源文件复制到文件夹?

如果我可以复制模板文件并将其定制为任何需要构建的代码,我已经决定代码将相当容易实现。

我只会将一个罐子分配给客户。如何处理这个问题是否有最佳做法?

  • 它甚至有可能在运行时从jar复制资源?
  • 在第一次执行jar时“自动生成”模板会更好吗?
+0

我不明白你想从哪里复制文件。你能说清楚一点吗?模板文件在哪里?它在罐子里吗?您希望客户在启动应用程序后在其计算机上安装此文件吗? – amorfis 2009-07-21 20:16:40

回答

8

您可以通过读取存储在你的JAR文件:

Class.getResourceAsStream(pathToFile); 

有关详细信息,请参阅本question

5

是的,您可以从JAR读取资源并将其写入您的文件系统。正如kgiannakakis所建议的那样,您需要将资源视为流。

但是,使用哪个类加载器是模糊的。我经常看到建议,在Web应用程序,你应该使用的上下文ClassLoader:

Thread.currentThread().getContextClassLoader().getResourceAsStream() 

但随后上快速搜索,以确认这仍然是正确的建议,很多人建议当前的类加载器代替上下文类加载器,虽然大多数人承认没有答案,将在任何情况下完美工作。 Whee!

在这一点上,我会说只是使用当前的类加载器@kgiannakakis建议 - 它更简单,并不清楚使用上下文类加载器会更好。如果遇到无法正常工作的情况,可以尝试使用上下文类加载器作为替代方法。

相关问题