如何从jar文件加载DTD?

时间:2010-10-12 20:14:36

标签: java jar dtd

目标机器没有连接到互联网,我不想使用固定位置加载它。

目标:要从jar加载DTD,jar将是一个依赖项。

2 个答案:

答案 0 :(得分:1)

要从类路径加载任何文件(它是您所在的类所在的空间,通常是一堆罐子),您可以这样做:

InputStream is = this.getClass().getResourceAsStream("my/package/ResourceFile.dtd");

然后您可以在任意位置使用输入流。

注意: getResourceAsStream()使用加载类的类加载器加载资源。如果你正在申请任何一个应用程序中的类(因此由同一个类加载器加载你的jar)就可以了。

答案 1 :(得分:1)

没有标准方法可以提供DTD的本地缓存(如果我没记错的话,也可以是CATALOG)。

因此,您需要调查将使用本地副本的解析器,并使用其非标准配置API让它知道这些本地副本,以避免访问网络。

使用getResourceAsStream()方法从类路径中挑选条目。