문제

이 질문에는 이미 답변이 있습니다.

Eclipse(3.4)를 사용하고 있는데 내 클래스가 경고나 오류 없이 컴파일됩니다.내 프로젝트는 외부 jar 파일을 사용합니다.

이 외부 jar 파일을 가져오지 않으려면 어디에 넣어야 합니까? java.lang.NoClassDefFoundError Eclipse가 아닌 다른 프로젝트에서 이 클래스를 사용할 때?

단지 프로젝트 폴더에 항아리를 추출할 수도 있지만 그것은 옳지 않은 것 같습니다.

편집하다:이 질문은 Eclipse에서 jar를 가져오는 것이 아니라 Eclipse 외부에서 사용하는 것에 관한 것입니다.

도움이 되었습니까?

해결책

Eclipse 프로젝트에 JAR 파일을 포함시키려는 경우 일반적으로 프로젝트 폴더 내부에 'lib'폴더를 작성하고 파일을 거기에 넣습니다. 그런 다음 코드가 Eclipse 내부를 컴파일하고 실행하도록 Eclipse에 클래스 경로에 포함하도록 ECLIPSE에 알려야합니다.

하기 위해서:
- 프로젝트의 속성으로 이동하십시오
- 왼쪽 열에서 'Java 빌드 경로'를 선택하십시오.
- 창의 중앙 부분에서 '라이브러리'탭을 선택하십시오.
- JARS ADD 버튼을 클릭하십시오 - 이렇게하면 Eclipse의 프로젝트 목록이 제공됩니다. 프로젝트를 확장하고 Lib 폴더로 확장하십시오. Jar가 있습니다.
- 항아리를 선택하고 확인을 클릭하고 속성 창 밖으로 다시 확인하십시오.

이제 코드가 컴파일 및 실행됩니다.

다른 팁

당신의 안에 넣으십시오 jre/lib/ext 폴더

ClassPath에 대해 모든 것이 사실이지만, 이것은 살기에 일관되고 현명한 장소입니다.

Windows에서 Java_home 환경 변수를 보면 JRE 폴더를 찾을 수 있습니다.

그것은 당신이 그것을 넣는 곳에는 중요하지 않지만, 외부 항아리를 클래스 경로에 넣기 위해 다른 비경사 프로젝트를 구성하거나 필수적인 경우 Extensions 디렉토리 메커니즘을 사용해야합니다. (더 쉽지만 명백하게 만드는 것은 아마도 더 좋을 것입니다.)

사이먼의 대답은 최고 인 것 같습니다. 이 Oracle Doc을 검색했습니다 설치된 확장 .

Java 6 기준으로 확장자 파일은 특정 JRE와 무관 한 위치에 배치 될 수 있으므로 시스템에 설치된 모든 JRE가 확장을 공유 할 수 있습니다.

Windows의 경우 여기에 확장자를 여기에 배치해야합니다.

a를 사용하여 참조하면됩니다 -classpath 옵션, Eclipse Workspace에 포함되지 않은 폴더, 즉 Eclipse에 전혀 의존하지 않는 옵션.

경고, Cannoy는 다른 프로젝트를 실행합니다 java -jar 외부 항아리를 참조하면 -cp 옵션 (이 질문을 참조하십시오)

새 폴더에 배치합니다. 이 폴더는 빌드 경로에 포함되어야합니다. 일식이든 외부에 있는지는 중요하지 않습니다. Eclipse에는 프로젝트 별 빌드 경로가 있으며이 경로를 Javac으로 전달합니다. 일식 밖에서 Javac을 실행하려면 빌드 경로를 수동으로 통과해야합니다.

나는 이것이 당신이 요구하는 것이 아니라는 것을 알고 있지만 Maven을 사용하는 것을 고려 했습니까? 어셈블리와 같은 플러그인 중 일부는 이와 같은 상황에서 도움이 될 수 있습니다.

James Camfield가 쓴대로 Eclipse 안에 항아리를 두십시오.

그런 다음 배포를 위해 (Ant, Maven, Maven, 수동)를 빌드 할 때, JAR 파일이 응용 프로그램 JAR 또는 War 또는 Ear 또는 모든 파일에 또는 Application jar 또는 War 또는 모든 파일에 포함되어 있는지 확인하고 모든 스타트 업 스크립트가 -ClassPath 명령 줄을 사용하여 클래스 경로에 포함하도록하십시오. Vonc이 작성한대로 Java의 옵션.

Java Extensions 폴더에 항아리를 붙이는 것에 대해 걱정하지 마십시오.이 모든 일은 코드를 제 3 자에게 보내서 사용하기 위해 잊어 버릴 수 있습니다. .

공유 lib 디렉토리를 생성하고 이 jar와 거기에 있을 수 있는 다른 일반적인 jar 파일을 배치합니다.Maven을 사용하고 있다면 이미 로컬 저장소 형식으로 되어 있습니다.

Eclipse에서 이 디렉터리에 대한 클래스 경로 변수를 만든 다음 이를 사용하여 프로젝트에서 jar 파일을 참조합니다.이러한 조건을 충족하는 프로젝트가 여러 개 있다면 삶이 훨씬 쉬워질 것입니다.또한 로컬 드라이브에서 네트워크 드라이브로 이동하는 경우 루트 디렉터리의 위치를 ​​쉽게 변경할 수 있습니다.

외부 앱에서는 앱 클래스 경로의 공유 위치에 있는 이 jar 파일도 포함합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top