Як встановити java.library.path від Eclipse


209

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

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


1
Я зробив це, додавши його як аргумент VM, і він спрацював. Як саме ти це зробив?
Майкл Майерс

Відповіді:


297

Не возитися з бібліотечним шляхом! Затьмарення будує це сам!

Натомість перейдіть до налаштувань бібліотеки для своїх проектів та розгорніть її на вкладці Бібліотеки для кожної банку / тощо . У перегляді дерев там кожна бібліотека має елементи для джерела / javadoc та локальної бібліотеки.

Зокрема: виберіть Project, клацніть правою кнопкою миші -> Властивості / Вкладка Java Build Path / Бібліотеки , виберіть .jar, розгорніть його, виберіть Розташоване місце бібліотеки , натисніть Редагувати , з'явиться діалогове вікно вибору папок)

Валуватися з бібліотечним контуром у командному рядку повинно бути вашим останнім зусиллям канави, оскільки ви можете зламати щось, що вже правильно встановлено затемненням.

Місце розташування рідної бібліотеки


6
Але як це працює, якщо вам потрібно додати більше однієї папки?
День

2
це гарне питання. Чому у вас є одна папка рідних бібліотек для однієї банки? Я впевнений, що є спосіб, коли ви можете вставити самі рідні бібліотеки в банку, так що це може бути шлях?
Джон Гарднер

1
Я працюю над спадщинним проектом, над яким я дуже мало контролюю. Я, звичайно, не можу змінити структуру проекту. Моє вирішення на даний момент полягає в тому, щоб покласти все на свою ПАТУ - але це не так приємно.
День

1
в залежності від ОС, ви могли б створити один каталог, який є всі символічні посилання на інші бібліотеки? або принаймні для цілей розробки ви могли скопіювати всі файли в один каталог.
Джон Гарднер

2
Я не можу зробити цю паличку. Я можу додати шлях до рідної бібліотеки, але коли натискаю кнопку ОК, щоб пройти весь шлях назад, а потім знову перескочити до властивостей проекту, він говорить "Немає". Я використовую затемнення Indigo SR2
bacar


23

За винятком способу, описаного у схваленій відповіді, є ще один спосіб, якщо у вашому проекті є одинарні накиди.

  • у Властивості проекту-> Шлях збірки Java-> Вкладка "Джерело" міститься список папок-джерел
  • Для кожного запису є "Місцеві бібліотеки", що також підтримує шляхи до робочої області.
  • Це змусить Eclipse додати його до свого java.library.path.

2
приголомшливий !!!! дуже дякую!!! це вирішило мою проблему. потрібно було додати діліб до мого проекту та банку. налаштування місцевого розташування бібліотеки виправлено!
ufk

11

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

Якщо ви хочете встановити його для всієї робочої області, ви також можете встановити його під

Window->
  Preferences->
    Java->
      Installed JREs

Кожен JRE має "аргументи VM за замовчуванням" (які, на мою думку, повністю ігноруються, якщо для конфігурації запуску встановлені якісь аргументи VM.)

Ви навіть можете налаштувати різні JRE / JDK з різними параметрами, і деякі проекти використовують один, а інші - інші.



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доводила мені, що це лише проблема шляху, а не проблема з DLL.
vegemite4me

5

Жодне з вищезазначених рішень не працювало для мене (Eclipse Juno з JDK 1.7_015). Java могла знайти бібліотеки лише тоді, коли я перемістив їх з project_folder / lib в папку project_folder.


Що? Чому це має бути важливо ..? O_o
Кампа

5

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

Налаштування проекту цього не виправлять.


тоді, де мені потрібно додати параметри java.library.path?
eLRuLL

4

Клацніть Виконати
Клацніть Налагодити ...
Нова програма Java
Клацніть на вкладці Аргументи
у другому полі (Аргументи VM) додайте запис -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

Іншим рішенням було б відкрити «запустити конфігурацію», а потім на вкладці «Навколишнє середовище» встановити пару {Шлях, значення}.

Наприклад, щоб додати каталог "lib", що знаходиться в корені проекту,

    Path  <-  ${workspace_loc:name_of_the_project}\lib

Але, можливо, безпосередньо аргумент VM -Djava.library.pathна вкладці Аргументи ?
Кампа


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 вирішило проблему.


0

Ви можете додати аргумент vm у Eclipse.

Приклад:

-Djava.ext.dirs=cots_lib

де cots_libваша зовнішня бібліотека папок.


-1

найпростішим способом було б використовувати саме IDE затемнення. Перейдіть до меню і встановіть шлях побудови. Позначте його на шлях файлів JAVA JDK та JRE у вашому каталозі. після цього ви можете перевірити шлях збірки, куди збираються встановлені файли. в папці bin за замовчуванням, хоча. Найкраще було б дозволити eclipse обробляти сам шлях побудови і лише редагувати його, подібне до рішення, яке наведено вище

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.