Как установить java.library.path из Eclipse


209

Как я могу установить java.library.pathдля всего проекта Eclipse? Я использую библиотеку Java, которая зависит от конкретных файлов ОС и должна найти .dll/ .so/ .jnilib. Но приложение всегда выходит с сообщением об ошибке, что эти файлы не найдены в пути к библиотеке.

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


1
Я сделал это, добавив его в качестве аргумента VM, и это сработало. Как именно ты это сделал?
Майкл Майерс

Ответы:


297

Не связывайтесь с библиотечным путем! Затмение строит это сам!

Вместо этого перейдите в настройки библиотеки для своих проектов и, для каждого jar / etc, для которого требуется собственная библиотека, разверните ее на вкладке Libraries . В древовидном представлении у каждой библиотеки есть элементы для исходного / javadoc и нативного расположения библиотеки.

В частности: выберите Project, щелкните правой кнопкой мыши -> Свойства / Java Build Path / вкладка Библиотеки , выберите .jar, разверните его, выберите Собственное расположение библиотеки , нажмите « Изменить» , появится диалоговое окно папки)

В последнюю очередь вы должны позаботиться о пути к библиотеке в командной строке, потому что вы можете сломать что-то, что уже правильно установлено eclipse.

Родное расположение библиотеки


6
Но как это работает, если вам нужно добавить более одной папки?
Дан

2
Это хороший вопрос. Почему у вас есть несколько папок нативных библиотек для одной банки? Я уверен, что есть способ, которым вы можете встроить нативные библиотеки в банку, так что это может быть путь?
Джон Гарднер

1
Я работаю над устаревшим проектом, над которым у меня очень мало контроля. Я, конечно, не могу изменить структуру проекта. Мой обходной путь на данный момент состоит в том, чтобы поместить все в мою PATH - но это не так приятно.
Дан

1
в зависимости от ОС, вы можете создать один каталог, который все символические ссылки на другие библиотеки? или, по крайней мере, в целях разработки вы можете скопировать все библиотеки в один каталог.
Джон Гарднер

2
Я не могу сделать эту палку. Я могу добавить собственный путь к библиотеке, но когда я нажимаю кнопку ОК, чтобы вернуться назад, а затем снова переключаюсь в свойства проекта, появляется сообщение «Нет». Я использую затмение Indigo SR2
Bacar

37

Если вы добавляете его в качестве аргумента виртуальной машины, убедитесь, что вы добавили префикс -D:

-Djava.library.path=blahblahblah...

3
Смотрите этот пост: stackoverflow.com/a/2309723/510583 . -Djava.library.path = "$ {workspace_loc: project} \ lib; $ {env_var: PATH}"
Лев

23

Кроме способа, описанного в утвержденном ответе, есть и другой способ, если в вашем проекте есть отдельные нативные библиотеки.

  • в свойствах проекта-> Java Build Path-> вкладка «Source» есть список ваших исходных папок
  • Для каждой записи есть «Места расположения собственных библиотек», которые также поддерживают пути в рабочей области.
  • Это заставит Eclipse добавить его к вашему java.library.path.

2
здорово!!!! большое спасибо!!! это решило мою проблему. Нужно добавить dylib в мой проект и банку. установка родной библиотеки исправила это!
UFK

11

Для запуска данного приложения вы можете сделать это, как говорит Джим.

Если вы хотите установить его для всего рабочего пространства, вы также можете установить его в

Window->
  Preferences->
    Java->
      Installed JREs

Каждый JRE имеет «Аргументы VM по умолчанию» (которые, я считаю, полностью игнорируются, если для конфигурации запуска установлены какие-либо аргументы VM).

Вы даже можете установить разные JRE / JDK с разными параметрами, и некоторые проекты используют один, другие проекты используют другой.


8

Вы можете просто добавить -Djava.library.path=yourPathв eclipse.ini.


6

Просто добавьте *.dllфайлы в свойc:/windows

Вы можете получить java.library.path из следующих кодов: и затем добавить свои dll файлы по любому пути, который вы получите

import java.util.logging.Logger;

public class Test {


    static Logger logger = Logger.getLogger(Test.class.getName());
    public static void main(String[] args) {
    logger.info(System.getProperty("java.library.path"));
    }
}

Это будет означать, что каждый, кто использует ваш проект, также должен поместить их туда.
xtofl

Спасибо за это. Идея размещения библиотек DLL c:/windowsдоказала мне, что это просто проблема с путями, а не проблема с библиотеками.
vegemite4me

5

Ни одно из приведенных выше решений не помогло мне (Eclipse Juno с JDK 1.7_015). Ява могла найти библиотеки только когда я переместил их из project_folder / lib в project_folder.


Какой? Почему это должно быть важно ..? О_о
Кампа

5

Я думаю, что есть еще одна причина, чтобы хотеть установить java.library.path. Subversion поставляется со многими библиотеками, и Eclipse не увидит их, если java.library.pathих не добавить. Например я на OS-X, поэтому библиотеки находятся под\opt\subversion\lib . Их много, и я бы хотел сохранить их там, где они есть (не копировать их в стандартный каталог lib).

Настройки проекта не исправят это.


тогда где мне нужно добавить параметры java.library.path?
eLRuLL

4

Нажмите «Выполнить»,
нажмите «Отладка ...».
Новое Java-приложение.
Откройте вкладку «Аргументы»
во 2-м поле («Аргументы виртуальной машины») и добавьте запись -D.

-Xdebug -verbose:gc -Xbootclasspath/p:jar/vbjorb.jar;jar/oracle9.jar;classes;jar/mq.jar;jar/xml4j.jar -classpath -DORBInitRef=NameService=iioploc://10.101.2.94:8092/NameService  

и т.д...


1
Кроме того - в конфигурации запуска перейдите на вкладку «Общие» и выберите место в своем проекте для сохранения конфигурации запуска. Это позволяет вам зарегистрировать эту конфигурацию запуска (файл xxxx.launch), чтобы другие члены вашей команды могли использовать ее повторно.
Скотт Стэнчфилд

3

Другим решением было бы открыть «запустить конфигурацию», а затем на вкладке «Среда» установить пару {Path, Value}.

Например, чтобы добавить каталог 'lib', расположенный в корне проекта,

    Path  <-  ${workspace_loc:name_of_the_project}\lib

Но, может быть, непосредственно аргумент VM -Djava.library.pathна вкладке Arguments ?
Кампа


1

Я использую Mac OS X Yosemite и Netbeans 8.02, у меня та же ошибка, и простое решение, которое я нашел, похоже на приведенное выше, это полезно, когда вам нужно включить собственную библиотеку в проект. Сделайте следующее для Netbeans:

1.- Right click on the Project
2.- Properties
3.- Click on RUN
4.- VM Options: java -Djava.library.path="your_path"
5.- for example in my case: java -Djava.library.path=</Users/Lexynux/NetBeansProjects/NAO/libs>
6.- Ok

Я надеюсь, что это может быть полезно для кого-то. Ссылка, где я нашел решение, находится здесь: java.library.path - что это такое и как использовать


0

Иногда мы не получаем Java Build Path, щелкнув правой кнопкой мыши по проекту. затем перейдите в свойства ....Щелкните правой кнопкой мыши и перейдите к свойствам

Затем нажмите на путь сборки JavaСвойства Scrren

Нажмите на добавить внешнюю банку

Нажмите на вкладку добавить внешние банки и укажите путь к файлу вашего компьютера, где вы сохранили банки.


0

Вот еще одно исправление:

Моя система сборки (Gradle) добавила необходимую встроенную библиотеку (dll) в путь сборки Eclipse (щелкните правой кнопкой мыши Project -> Properties -> Java Build Path -> Libraries). Указание системе сборки не добавлять нативную библиотеку dll в путь к классам Eclipse решило проблему.



-1

Самый простой способ - использовать саму IDE затмения. Зайдите в меню и установите путь сборки. Укажите его путь к файлу JAVA JDK и JRE в вашем каталоге. после этого вы можете проверить путь сборки, где будут установлены скомпилированные файлы. в папке bin по умолчанию, хотя. Лучше всего было бы позволить eclipse самостоятельно обрабатывать путь сборки и редактировать его только так, как описано выше.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.