Как установить 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.