2016-06-16 2 views
0

자바에서 Spigot/Bukkit (Minecraft) 용 플러그인을 쓰고 있는데,이 문제를 어떻게 해결할 지 알 수 없습니다. 다른 언어로 많은 프로그래밍을 해 왔지만 이것이 자바 프로그래밍의 첫 번째 시도입니다. 나는 많은 수의 페이지를 보았지만 많은 구글 검색을 해왔다. 그러나 모든 것은 내가 이미 시도한 것을하기 위해 말했다.java.lang.NoClassDefFoundError : com/mongodb/XXXXXX 해결할 수 없습니다! (Using : MongoDB Java Driver, Spigot)

나는 이클립스를 사용 중이며 mongo java 드라이버를 설치하는 모든 종류의 변형을 시도하는 maven 프로젝트로 프로젝트를 변환했다. 나는 시도했다 :
- 추가 종속성/s의
- 외부 항아리
추가> 프로젝트 -> 속성 -> 자바 경로 - 빌드를 사용하여 buildpath에 추가 - 나는 위의
의 둘의 조합을했습니다 - mongodb-driver, mongodb-driver-core 및 bson을 함께 사용하고 mongodb-java-driver (자체에서 작동해야 함)를 사용해 보았습니다.
- mongodb-java- 드라이버
- 여러 버전의 드라이버를 사용해 보았습니다.

내가 항아리에 내 플러그인을 내보낼 때, 내가 무슨 문제가 내 마 개 서버에서 실행하려고 시도하지 않습니다 나는 다음과 같은 오류 얻을 :

java.lang.NoClassDefFoundError: com/mongodb/MongoClientURI 
이 이 MongoClientURI에 의해 대체 될 수

내 코드에서 사용하는 모든 mongo 클래스. 드라이버를 올바르게 사용하지 않습니까? 뭔가 빠졌습니까? 무슨 일이야?

답변

1

그래서 결국 내 자신의 문제를 해결했습니다. spigot은 실행 중 spigot 플러그인 이외의 jar 파일을 인식하지 못합니다. 음영은 내 문제를 해결했지만 대신 다음을 수행했습니다.

  1. 내 프로젝트 디렉토리에 MANIFEST.MF라는 파일이 만들어졌습니다.

    매니페스트 버전 : 1.0
    클래스 경로 :

  2. 추가 한 파일에 다음과 같은 libs와/몽고 - 자바 드라이버-3.2.2.jar
    만든-로 : 1.7.0_06 (오라클 Corporation)

  3. 플러그인을 내보내는 마지막 단계에서 "작업 영역의 기존 매니페스트 사용"을 선택했습니다.

런타임에 마개가 {플러그인 위치} /libs/mongo-java-driver-3.2.2.jar이 라이브러리의에 포함 할 것을 의미했다.

여기 내 해결책을 찾았습니다. https://www.spigotmc.org/threads/solved-mongodb-help.35922/