Eclipse: получить разницу «Путь к текущему каталогу» при запуске как «Java-приложение» и «на сервере» - PullRequest
0 голосов
/ 20 февраля 2012

Я использую tomcat server и пытаюсь вызвать java-класс из сервлета, у этого класса есть метод, который будет возвращать текущий путь к каталогу системы.Его результат отличается от того, когда я запускаю основной метод формы в этом классе.

  • из основного метода: "D: \ Projects \ Eclipse \ Assignment" (где я размещаю свой проект)
  • из сервлета: "D: \ IDE \ eclipse helios" (где я размещаю свое затмение)

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

Буду признателен за любые советы, которые вы мне дадите, или за статьи, которые вы можете порекомендовать.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 20 февраля 2012

Почему вы пытаетесь получить доступ к своим ресурсам из файловой системы?Ожидаемый метод доступа к ресурсам из любого JAR, включая веб-приложения, использует getResourceAsStream:

http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)

, т.е. добавьте папку, содержащую ваш ресурс, в путь сборки и используйте YourClassName.class.getResourceAsStream("/foo.xml") дляполучить доступ к нему.

0 голосов
/ 20 февраля 2012

В: Вы понимаете, почему «текущий каталог» находится в двух разных местах, верно? В одном месте вы запускаете свою Java-программу (когда вы «Запускаете как Java-программа»), а в другом месте вы запускаете свой веб-сервер (когда вы «запускаете как веб-приложение»).

В: Для вашей текущей ситуации, почему бы просто не использовать абсолютный путь (например, "d: \ projects \ data")?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...