Как загрузить DTD из файла JAR? - PullRequest
0 голосов
/ 13 октября 2010

Предполагаемый компьютер не имеет подключения к Интернету, и я не хочу загружать его, используя фиксированное местоположение.

Цель: чтобы загрузить DTD из банки, она будет зависимой.

Ответы [ 2 ]

1 голос
/ 13 октября 2010

Не существует стандартного способа предоставления локального кэша (CATALOG, если я правильно помню) DTD.

Следовательно, вам необходимо исследовать синтаксический анализатор, который будет использовать локальные копии, и использовать его нестандартный API конфигурации, чтобы сообщить ему об этих локальных копиях, чтобы избежать обращения к сети.

Используйте метод getResourceAsStream (), чтобы выбрать записи из пути к классам.

1 голос
/ 13 октября 2010

Чтобы загрузить любой файл из пути к классам (это пространство, в котором находятся ваши классы, обычно несколько банок), вы можете сделать:

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

И тогда вы можете использовать поток ввода, где вы хотите.

Примечание: getResourceAsStream () загружает ресурс с помощью загрузчика классов, который загрузил класс. Если вы создаете приложение, любой класс из вашего приложения (и, следовательно, загруженный тем же загрузчиком классов с вашими jar-файлами) будет в порядке.

...