Eclipse: используйте переменную среды для внешнего расположения jar

После нескольких часов безуспешного гугления я спрашиваю вас:

Ситуация:

В моем проекте Eclipse используется «nedded.jar», поэтому я добавил его в путь сборки. Без проблем.

  • C:/dev/разработка/my_needed/nedded.jar

Но расположение «nedded.jar» зависит от переменной среды DEVELOPMENT ( =C:/dev/development/ ) и поэтому может измениться. Итак, мне нужно, чтобы мой путь к справочной библиотеке был:

  • %РАЗРАБОТКА%/my_needed/nedded.jar

Я не мог найти синтаксис для этого. Идеи?

РЕДАКТИРОВАТЬ:

Возможно, я недостаточно ясно выразился: этот проект разработан MSVisual Studio (C++) и Eclipse (Java). Оба запускаются из консоли. Предварительно выполненный скрипт устанавливает 3 основные переменные: РАЗРАБОТКА, ВРЕМЯ РАБОТЫ, ИСТОЧНИКИ на определенные, изменяющиеся пути.

Если я затем запущу Eclipse из этой оболочки, путь к моим внешним библиотекам будет определен в %DEVELOPMENT%\my_needed\nedded.jar.

Я нашел половинчатое решение (где-то): добавил новую папку -> дополнительно -> ссылку на альтернативное место (связанную папку).

это добавляет вам запись в ваш .project, которую я также получаю, когда проверяю свой проект:

<linkedResources>
   <link>
   <name>lib/RXTXcomm.jar</name>
   <type>1</type>
     <locationURI>PARENT-4-PROJECT_LOC/Development/rxtx/RXTXcomm.jar</locationURI>
   </link>
</linkedResources>

Пока все хорошо, но это все еще не зависит от %DEVELOPMENT%. Мне нужно: %DEVELOPMENT%/rxtx/RXTXcomm.jar

Надеюсь, теперь это стало яснее.


person LalaBox    schedule 29.10.2013    source источник
comment
Вы прочитали help.eclipse.org/indigo/   -  person Leonard Brünings    schedule 29.10.2013
comment
Да, помощи нет, так как я не хочу ссылаться на переменные внутренней среды Eclipse. ${env_var} можно использовать только в конфигурации запуска/отладки. В сценарии ant я могу сослаться на ‹property environment=env/›. Я хочу проверить проект в любом месте файловой системы, установить переменные среды, запустить Eclipse, импортировать проект и вуаля: все внешние библиотеки будут найдены автоматически!   -  person LalaBox    schedule 30.10.2013
comment
Полезные подходы: Post_1, Post_2   -  person LalaBox    schedule 30.10.2013


Ответы (3)


Вы должны объявить переменную (Путь сборки Java -> Добавить переменную... -> Настроить переменную... -> Создать), чтобы установить изменяющийся путь в каждой системе (например, FOO_BAR_HOME).

Затем вы можете добавить переменную в раздел «Библиотеки» и отредактировать ее, чтобы она указывала на вашу библиотеку, например:

%FOO_BAR_HOME%/lib/foobar.jar

Взгляните на существующие переменные для использования.

В качестве альтернативы вы можете разместить библиотеку внутри проекта (например, в подпапке «lib»). Если вы добавите библиотеку из этого места («Добавить банки...», НЕ «Добавить внешние банки...»), она будет добавлена ​​по относительному пути.

person sanjeev jangra    schedule 29.10.2013
comment
+1 за помощь. Вот что можно добавить (по крайней мере, для Eclipse 3.6.2)... После добавления переменной FOO_BAR_HOME VARIABLE вы можете отредактировать путь сборки Java для своего проекта. На вкладке «Библиотеки» нажмите «Добавить переменную», выберите переменную FOO_BAR_HOME и нажмите кнопку «Расширить». Затем перейдите к файлу jar и выберите его. Ваш файл .classpath будет содержать путь относительно вашей переменной FOO_BAR_HOME. - person kc2001; 03.04.2014

Я тоже искал ответ на этот вопрос с помощью ant. Кажется, вы можете ссылаться на переменные среды Windows, например так

<property environment="env"/>

Укажите все переменные среды в виде свойств Ant с префиксом «env.». Например, CLASSPATH будет доступен в Ant как ${env.CLASSPATH}.

person Alao    schedule 23.06.2016

Я думаю, вы должны быть в состоянии использовать

${workspace_loc} 

or

${resource_loc/<a name of your project/plug-in>/folder...}
person gia    schedule 29.10.2013