Проблемы при работе с Java-приложением на компьютерах Windows и Snow Leopard

#java #windows #eclipse #macos #classpath

#java #Windows #eclipse #macos #путь к классу

Вопрос:

Для этого должно быть простое решение, но у меня возникли проблемы при работе с Java-приложением на компьютерах Windows и Snow Leopard. Я выполняю всю свою разработку в Eclipse и переношу код через SVN checkins / извлечения. Проблема, с которой я сталкиваюсь, заключается в том, что приложение ссылается на кучу JAR-файлов Snow Leopard JDK и ссылается на них через абсолютное местоположение в classpath. Есть ли у кого-нибудь опыт работы в среде такого типа и как вы это обходите?

Комментарии:

1. Разве вы не можете использовать JAVA_HOME (% JAVA_HOME% в Windows и, я думаю, $ JAVA_HOME в * nix) и иметь все ваши jdk-файлы jar относительно этого. Кроме того, все, что требуется в пути к классу компиляции / времени выполнения, может быть добавлено в переменную CLASSPATH на обеих машинах

Ответ №1:

Просто настройте переменную classpath, указывающую на некоторый каталог, и укажите путь сборки библиотеки относительно этого каталога.

Или просто используйте репозиторий Maven.

Комментарии:

1. Maven всегда пугал меня (без реальной причины) … но я полагаю, что пришло время мне стиснуть зубы… Я попробую и вернусь! Спасибо!

Ответ №2:

Вместо того, чтобы использовать абсолютные пути, переменные пути, maven, ivy или что-то еще…

Настройки -> Java -> Установленные JRES

Выберите JRE, который используется для ваших проектов, и нажмите Редактировать. Добавьте другие jar-файлы из вашего JDK. Вот и все. Все проекты увидят измененное определение JRE. Поскольку этот параметр сохраняется в рабочей области, у вас не возникнет проблем с его различной настройкой в разных операционных системах.

Ответ №3:

Если ваши внешние файлы jar находятся в каталоге war / WEB-INF / lib как часть вашего проекта, если вы перейдете в «Настроить путь сборки» и добавите их как внешние файлы jar, они будут добавлены с использованием полного пути, который вам не нужен. Если бы у вас были одинаковые файловые структуры в обеих средах, вы бы не задали этот вопрос.

Если вы откроете фактический каталог war / WEB-INF / lib в своем проекте и щелкните правой кнопкой мыши на jars и выберите «Путь сборки / Добавить в путь сборки», то файлы jar будут добавлены с относительным путем. Они будут устранены в Windows и OSX. Если файл уже настроен в пути сборки, вы не получите опцию Добавления.

Вы также можете добиться того же, вручную отредактировав файл .classpath для проекта, чтобы сделать ссылку относительной, но тогда вам не понадобится IDE.

Это не работает для библиотеки, подобной servlet-api.jar которое поставляется с Tomcat и обычно устанавливается в разных местах OSX и Windows, и вы не хотите, чтобы оно было частью вашего файла war. Я установил Tomcat в Windows в том же каталоге (/ Library), что и для OSX, и, похоже, это работает. По крайней мере, я могу зафиксировать проект на OSX и обновить до Windows, и он все еще работает.