Как добавить собственную библиотеку в " java.библиотека.путь " с запуском Eclipse (вместо его переопределения)


Я получил родную библиотеку, которая должна быть добавлена в java.библиотека.путь. С аргументом JVM -Джава.библиотека.path=путь... Я могу установить путь, как я хочу.

моя проблема заключается в том, что моя другая библиотека (pentaho reporting) ищет шрифты на основе java по умолчанию.библиотека.путь (включая системные каталоги и т. д.), а ручная настройка переопределяет путь по умолчанию..

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

EDIT: извините за недостающие детали; я работаю с Eclipse. (Развертывание выполняется с помощью JNLP, и там я могу использовать nativelib под ресурсы)

13 85

13 ответов:

забыл этот вопрос... Я на самом деле спрашивал с Eclipse, извините, что не сказал этого изначально. И ответ кажется слишком простым (по крайней мере, с 3.5; вероятно, и с более старыми версиями):

Аргументы конфигурации запуска Java : аргументы VM:

-Djava.library.path="${workspace_loc:project}\lib;${env_var:PATH}"

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

Если вы хотите добавить собственную библиотеку, не мешая java.library.path во время разработки в Eclipse (чтобы избежать включения абсолютных путей и необходимости добавлять параметры в конфигурацию запуска), вы можете указать путь к расположению собственных библиотек для каждой Jar в Java Build Path диалоговое окно родной библиотеки местности. Обратите внимание, что имя файла собственной библиотеки должно соответствовать имени файла Jar. Смотрите также это подробно описание.

SWT помещает необходимые собственные библиотеки DLL в банку. Поиск "орг.затмение.свт.с Win32.с Win32.x86_3.4.1.v3449c.jar-для примера.

библиотеки DLL должны находиться в корне JAR, JAR должен быть подписан, и DLL должна отображаться с контрольной суммой в META-INF/манифесте.MF для виртуальной машины, чтобы забрать их.

в Windows, как это:

-Джава.библиотека.путь="C:/MyLibPath;%PATH%"

% PATH% - это ваш старый-Djava.библиотека.путь

https://bugs.eclipse.org/bugs/show_bug.cgi?id=102239 заявляет, что в пусковой установке Eclipse нет механики замены, по крайней мере, до выпуска Juno.

таким образом, (почти) невозможно добавить или добавить другую папку библиотеки к java.библиотека.путь при запуске Eclipse без предварительного знания по умолчанию.

Я написал почти, потому что это должно быть возможно, чтобы запустить Eclipse, сбросить содержимое Ява.библиотека.путь и остановить затмение в одной команде. Дамп будет проанализирован, а затем взят в качестве входных данных для запуска Eclipse, т. е.

#!/bin/bash
# get default value of java.library.path (somehow)
default_lib_path=$( start_dump_stop_eclipse_somehow )  

# now launch Eclipse
eclipse --launcher.appendVmargs \
         -vmargs \
         -Djava.library.path="/my/native/lib/folder:${default_lib_path}"

вы можете обойти это путем вызова

Окно - > Настройки - > Java - >Установленные JREs. Затем выберите текущую JRE (JDK) и нажмите кнопку Изменить. Заполните Аргументы VM по умолчанию: - Djava.библиотека.path=/usr/local/xuggler / lib. Готово!

решение, предложенное Робом Элснером в одном из комментариев выше, отлично работает (OSX 10.9, Eclipse Kepler). Нужно добавить их дополнительные пути к тому, что разделено":".

вы также можете использовать ${system_property:java.библиотека.путь} - Роб Элснер 22 ноября ' 10 в 23: 01

в системах UNIX можно добавить переменную среды LD_LIBRARY_PATH. В Windows JVM автоматически устанавливает системное свойство java.библиотека.путь, к пути; так что если dll находится на вашем пути, то вы настроены.

имя файла собственной библиотеки должно соответствовать имени файла Jar. Это очень и очень важно. Пожалуйста, убедитесь, что имя jar и имя dll совпадают. Кроме того, пожалуйста, смотрите сообщение от Фабиана Стига Мой скачать перетирать был содержащими разные имена для файлов и jar. Это было перетирать.jar и перетиратьd.dll, обратите внимание на дополнительный ' d ' в имени файла dll. Я просто переименовал его, чтобы перетирать.dll и установить его в качестве родной библиотеки в eclipse, как указано в должность "http://www.eclipsezone.com/eclipse/forums/t49342.html"

по какой-то причине я не мог заставить работать несколько папок (ну, это было какое-то время, но как только мне понадобилось больше DLL и добавлено больше папок, ни один с пробелами в пути). Затем я скопировал все необходимые библиотеки DLL в одну папку и как java.библиотека.путь и это сработало. У меня нет объяснения - если кто-то это сделает, это было бы здорово.

многие из существующих ответов предполагают, что вы хотите установить это для конкретного проекта, но мне нужно было установить его для Eclipse для поддержки встроенной проверки подлинности для драйвера JDBC SQL Server.

чтобы сделать это, я последовал эти инструкции для запуска Eclipse из командной строки Java вместо его обычной пусковой установки. Затем я просто изменил этот скрипт, чтобы добавить my-Djava.библиотека.аргумент пути к командной строке Java.

на Windows, я обнаружил, что важно, чтобы запустите Eclipse из командной строки а не из меню Пуск или ярлыка, при условии, что собственная DLL находится в каталоге в вашем пути. Видимо, это гарантирует, что правильный каталог находится на пути.