У меня небольшое приложение maven, оно загружает XML-файл из classpath и выполняет некоторые манипуляции. Он отлично работает из eclipse, но когда я запускаю maven: assembly и получаю исполняемый файл jar с зависимостями, программа выполняется до того момента, когда ей нужно получить XML-файл, а затем выдает:
java.io.FileNotFoundException: /home/ubuntu/Documents/workspaces/workspace-sts-2.7.2/test/target/file:
/home/ubuntu/Documents/workspaces/workspace-sts-2.7.2/test/target/test-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/test.xml (No such file or directory)
файл test.xml наверняка находится в jar, и, как я уже сказал, он запускается и находит файл очень хорошо при запуске из eclipse. Я считаю, что файл манифеста настроен правильно:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: ubuntu
Build-Jdk: 1.6.0_26
Main-Class: org.test.test1.App
Class-Path:.
вот код, который загружает XML-файл:
//load xml file from classpath
DocumentBuilder builder = factory.newDocumentBuilder();
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL classpathFileLocation =
classLoader.getResource("test.xml");
File file = new File(classpathFileLocation.getFile());
Document doc = builder.parse(file);