Eclipse에서 java.library.path를 설정하는 방법


209

java.library.pathEclipse 프로젝트 전체를 어떻게 설정 합니까? OS 특정 파일에 의존하는 Java 라이브러리를 사용하고 있으며를 찾아야합니다 .dll/ .so/ .jnilib. 그러나 응용 프로그램은 항상 해당 파일을 라이브러리 경로에서 찾을 수 없다는 오류 메시지와 함께 종료됩니다.

이 전체 프로젝트가 라이브러리 경로를 사용하도록 구성하고 싶습니다. 일식의 일부 실행 구성에 VM 인수로 경로를 추가하려고 시도했지만 작동하지 않았습니다.


1
VM 인수로 추가하여 수행했으며 작동했습니다. 정확히 어떻게 했습니까?
Michael Myers

답변:


297

라이브러리 경로를 망설이지 마십시오! 이클립스 자체 빌드!

대신 프로젝트의 라이브러리 설정으로 이동하고 기본 라이브러리가 필요한 각 jar / etc에 대해 라이브러리 탭 에서 확장 하십시오. 트리 뷰에서 각 라이브러리에는 소스 / javadoc 및 기본 라이브러리 위치에 대한 항목이 있습니다.

구체적으로 :을 선택 Project하고 마우스 오른쪽 단추로-> 특성 / Java 빌드 경로 / 라이브러리 탭을 선택한 후 .jar을 선택하고 펼친 후 기본 라이브러리 위치를 선택하고 편집을 클릭 하십시오. 하면 폴더 선택기 대화 상자가 나타납니다)

이클립스에 의해 이미 올바르게 설정된 것을 깨뜨릴 수 있기 때문에 명령 행에서 라이브러리 경로를 어지럽히는 것이 마지막 도랑 노력이되어야합니다.

기본 라이브러리 위치


6
그러나 추가 할 폴더가 두 개 이상인 경우 어떻게 작동합니까?
Dan

2
그건 좋은 질문이야. 하나의 jar에 대해 둘 이상의 기본 라이브러리 폴더가있는 이유는 무엇입니까? 네이티브 라이브러리 자체를 jar에 포함시킬 수있는 방법이 있다고 확신합니다.
John Gardner

1
나는 통제력이 거의없는 레거시 프로젝트를 진행하고 있습니다. 나는 확실히 프로젝트 구조를 바꿀 수 없습니다. 현재 내 해결 방법은 모든 것을 내 경로에 넣는 것입니다.하지만 그렇게 좋지는 않습니다.
Dan

1
OS에 따라 다른 라이브러리에 대한 모든 심볼릭 링크 인 하나의 디렉토리를 만들 수 있습니까? 또는 최소한 개발 목적으로 모든 라이브러리를 하나의 디렉토리에 복사 할 수 있습니다.
존 가드너

2
나는이 막대기를 만들 수 없습니다. 기본 라이브러리 경로를 추가 할 수 있지만 확인을 클릭하여 다시 되돌아 가서 프로젝트 속성으로 다시 이동하면 "없음"이라고 표시됩니다. 나는 일식 인디고 SR2를 사용하고 있습니다
bacar

37

VM 인수로 추가하는 경우 접두어를 다음과 -D같이 지정 하십시오 .

-Djava.library.path=blahblahblah...

3
이 게시물을 참조하십시오 : stackoverflow.com/a/2309723/510583 . -Djava.library.path = "$ {workspace_loc : project} \ lib; $ {env_var : PATH}"
leo

23

승인 된 답변에 설명 된 방법을 제외하고 프로젝트에 단일 기본 라이브러리가있는 경우 다른 방법이 있습니다.

  • 프로젝트 속성-> Java 빌드 경로-> 탭 "소스"에 소스 폴더 목록이 있습니다.
  • 각 항목마다 "네이티브 라이브러리 위치"가 있으며 작업 공간 내의 경로도 지원합니다.
  • 이렇게하면 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그것이 경로 문제이며 DLL 문제가 아니라는 것을 나에게 증명했습니다.
vegemite4me

5

위의 솔루션 중 어느 것도 나를 위해 일하지 않았습니다 (JDK 1.7_015의 Eclipse Juno). Java는 라이브러리를 project_folder / lib에서 project_folder로 옮길 때만 라이브러리를 찾을 수있었습니다.


뭐? 왜 중요해야합니까? O_o
Campa

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 파일)을 체크인하여 팀의 다른 사용자가이를 재사용 할 수 있습니다.
Scott Stanchfield

3

또 다른 해결책은 '실행 구성'을 연 다음 '환경'탭에서 {경로, 값}을 설정하는 것입니다.

예를 들어 프로젝트의 루트에있는 'lib'디렉토리를 추가하려면

    Path  <-  ${workspace_loc:name_of_the_project}\lib

그러나 인수-Djava.library.path에서 VM 인수 를 직접 사용할 수 있습니까?
Campa


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 빌드 경로를 얻지 못합니다. 그런 다음 속성으로 이동하십시오 ....마우스 오른쪽 버튼을 클릭하고 속성으로 이동

그런 다음 Java 빌드 경로를 클릭하십시오.스크 렌

외부 항아리 추가를 클릭하십시오.

외부 항아리 추가 탭을 클릭하고 항아리가 저장된 컴퓨터 파일의 경로를 지정하십시오.


0

다음은 또 다른 수정 사항입니다.

내 빌드 시스템 (Gradle)은 필수 네이티브 라이브러리 (dll)를 Eclipse 빌드 경로에 추가했습니다 (프로젝트-> 속성-> Java 빌드 경로-> 라이브러리를 마우스 오른쪽 버튼으로 클릭하십시오). 빌드 시스템에 기본 dll 라이브러리를 Eclipse 클래스 경로에 추가하지 않도록 지시하면 문제가 해결되었습니다.


0

Eclipse에서 vm 인수를 추가 할 수 있습니다.

예 :

-Djava.ext.dirs=cots_lib

cots_lib외부 폴더 라이브러리는 어디에 있습니까 ?


-1

가장 쉬운 방법은 이클립스 IDE 자체를 사용하는 것입니다. 메뉴로 이동하여 빌드 경로를 설정하십시오. 디렉토리의 JAVA JDK 및 JRE 파일 경로를 가리 키도록하십시오. 나중에 컴파일 된 파일이 설정 될 빌드 경로를 확인할 수 있습니다. bin 폴더에 기본적으로 있습니다. 가장 좋은 방법은 일식 자체가 빌드 경로를 처리하고 위에 제공된 솔루션과 유사하게 편집하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.