2009-06-05 2 views
196

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

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

+1

Я сделал это, добавив его как аргумент виртуальной машины, и это действительно сработало. Как именно вы это сделали? –

ответ

286

Не путайте путь библиотеки! Eclipse строит его сам!

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

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

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

Native library location

+0

ОК, похоже, это работает. Теперь в сообщении об ошибке отображается правильный путь. требуемая библиотека не найдена: /Users/janusz/Documents/workspace/SlideSelector/lib/libOpenCV.jnilib. Файл находится именно в этом каталоге. Кажется, это еще одна ошибка – Janusz

+6

Но как это работает, если у вас есть более одной папки для добавления? – Dan

+2

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

32

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

-Djava.library.path=blahblahblah... 
+3

Смотрите это сообщение: http://stackoverflow.com/a/2309723/510583. -Djava.library.path = "$ {workspace_loc: project} \ lib; $ {env_var: PATH}" – leo

4

Нажмите Run
Нажмите Debug ...
New Java Application вкладка
Нажмите Аргументы
во втором поле (аргументы 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 

etc ...

+1

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

+0

Это единственное, что сработало со мной, спасибо –

11

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

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

Window-> 
    Preferences-> 
    Java-> 
     Installed JREs 

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

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

8

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

6

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

Вы можете получить java.library.путь от последующих кодов: а затем добавить вам 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")); 
    } 
} 
+0

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

+0

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

20

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

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

потрясающий !!!! большое спасибо!!! которые разрешили мою проблему. необходимо добавить dylib в мой проект и банку. установив местную библиотеку, исправил ее! – ufk

5

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

Настройки проекта не будут исправлены.

+0

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

3

Другим решением является открытие «конфигурации запуска», а затем на вкладке «Окружающая среда», установите пару {Путь, Значение}.

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

Path <- ${workspace_loc:name_of_the_project}\lib 
+0

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

5

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

+0

Что? Почему это должно быть важно ...? O_o – Campa

0

Когда-нибудь мы не получим Java Build Path, щелкнув правой кнопкой мыши по проекту. затем перейти к свойствам .... Right Click and go to properties

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

Click on add external jar

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

1

Не забудьте включить папку родной библиотеки в PATH.

-1

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

0

Вот еще фикс:

Моя сборка системы (Gradle) добавил необходимый родной library (dll) в путь сборки Eclipse (щелкните правой кнопкой мыши по проекту -> Свойства -> путь сборки Java -> библиотеки). Сообщая системе сборки, чтобы не добавить библиотеку родной библиотеки DLL к пути класса Eclipse, эта проблема решила.

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 – What is it and how to use

0

Вы можете добавить аргумент vm в свое затмение.

Пример: -Djava.ext.dirs = cots_lib

где cots_lib ваша внешняя библиотека папок.