我需要从Java桌面应用程序生成复杂的文本文件。将资源文件复制到文件夹?
如果我可以复制模板文件并将其定制为任何需要构建的代码,我已经决定代码将相当容易实现。
我只会将一个罐子分配给客户。如何处理这个问题是否有最佳做法?
- 它甚至有可能在运行时从jar复制资源?
- 在第一次执行jar时“自动生成”模板会更好吗?
我需要从Java桌面应用程序生成复杂的文本文件。将资源文件复制到文件夹?
如果我可以复制模板文件并将其定制为任何需要构建的代码,我已经决定代码将相当容易实现。
我只会将一个罐子分配给客户。如何处理这个问题是否有最佳做法?
是的,您可以从JAR读取资源并将其写入您的文件系统。正如kgiannakakis所建议的那样,您需要将资源视为流。
但是,使用哪个类加载器是模糊的。我经常看到建议,在Web应用程序,你应该使用的上下文ClassLoader:
Thread.currentThread().getContextClassLoader().getResourceAsStream()
但随后上快速搜索,以确认这仍然是正确的建议,很多人建议当前的类加载器代替上下文类加载器,虽然大多数人承认没有答案,将在任何情况下完美工作。 Whee!
在这一点上,我会说只是使用当前的类加载器@kgiannakakis建议 - 它更简单,并不清楚使用上下文类加载器会更好。如果遇到无法正常工作的情况,可以尝试使用上下文类加载器作为替代方法。
我不明白你想从哪里复制文件。你能说清楚一点吗?模板文件在哪里?它在罐子里吗?您希望客户在启动应用程序后在其计算机上安装此文件吗? – amorfis 2009-07-21 20:16:40