Разрешение пути в структуре пакета Eclipse - PullRequest
1 голос
/ 24 мая 2011

Это очень простой вопрос для многих из вас, читающих это, но для меня это довольно новый вопрос. Вот скриншот для моего затмения

enter image description here

Когда я запускаю эту программу, я получаю java.io.FileNotFoundException: queries.xml (The system cannot find the file specified), я пробовал ../../../queries.xml, но это тоже не работает. Я действительно не понимаю, когда использовать ../, потому что это означает вернуться на 1 шаг назад в dir, и в некоторых случаях это работает, кто-нибудь может объяснить это? Также, как я могу сослаться на query.xml здесь. Спасибо

Примечание: я мог бы даже использовать этот код на linux box

Ответы [ 3 ]

2 голосов
/ 24 мая 2011

Я предполагаю, что он компилирует ваш код в папку build или classes и запускает его оттуда ...

Вы пробовали традиционный Java-способ сделать это:

def query = new XmlSlurper().parse( GroovySlurping.class.getResourceAsStream( '/queries.xml' ) )

Предполагая, что на этапе сборки копируется XML-файл в папку сборки, я считаю, что это должно сработать

Я не использую Eclipse, поэтому не могу быть уверен на 100% ...

1 голос
/ 24 мая 2011

Вы можете попробовать использовать файл свойств для хранения пути к файлам xml.

Таким образом, вы можете разместить xml-файлы в любом месте и просто изменить файл свойств. Это не потребует изменения / перекомпиляции кода.

Это будет означать, что вам нужно только жестко указать путь к файлу свойств.

Если вы предпочитаете не жестко задавать путь к файлу свойств, вы можете передать его в качестве аргумента при запуске в файле установки сервера. (в tomcat web.xml). Каждый сервер будет иметь эквивалентный установочный файл, в котором вы можете указать путь к файлу свойств.

В качестве альтернативы вы можете указать путь к XML в этом же файле, если вы не хотите использовать файлы свойств.

Эта ссылка покажет вам пример чтения из файлов свойств.
http://www.zparacha.com/how-to-read-properties-file-in-java/

1 голос
/ 24 мая 2011

Попробуйте

file = new File("src/org/ars/groovy/queries.xml");

Для проверки действующего рабочего каталога Eclipse вы можете использовать

File f = new File(".");
System.out.println(f.getAbsolutePath());
...