Как включить базу данных XML в jar-файл и получить к нему доступ? - PullRequest
2 голосов
/ 14 декабря 2011

В настоящее время я могу получить доступ к приложению к базе данных XML только в том случае, если файл jar и файл XML находятся в одном каталоге, и я надеюсь, что существует только один единственный файл jar, который включает файл XML. Как я могу это сделать?

private String getXmlPath() {
    String url = "";
    try {
        String cp = "Data\\QuestionList.xml";
        File f = new File(ClassLoader.getSystemResource("\\").toURI().getPath());
        url += f.getPath() + "\\" + cp;
    } catch (URISyntaxException ex) {  
        url="QuestionList.xml";
    }
    System.out.println(url);
    return url;
}

public void classifyQuestionnaire(String path)
        throws FileNotFoundException, XMLStreamException, JAXBException {
    // Parse the data, filtering out the start elements
    XMLInputFactory xmlif = XMLInputFactory.newInstance();
    FileReader fr = null;
    if (path == null) {
        fr = new FileReader(getXmlPath());
    } else {
        fr = new FileReader(path);
    }
    XMLEventReader xmler = xmlif.createXMLEventReader(fr);
    EventFilter filter = new EventFilter() {

        @Override
        public boolean accept(XMLEvent event) {
            return event.isStartElement();
        }
    };

1 Ответ

1 голос
/ 14 декабря 2011

Вы можете включить XML-файл в банку. Эти неклассовые файлы обычно называются «ресурсами». Это зависит от того, как вы создаете банку, но обычно это прямо вперед. См. Java: загрузка ресурса, содержащегося в jar , для чтения ресурса.

...