2017-11-15 13 views
0

CMake를 사용하여 add_jar 명령으로 jar 파일을 컴파일하고 있습니다. 문제는 외부 jar에 대한 종속성을 지정하기 위해 INCLUDE_JARS를 추가하려고하면 코드가 실행되지 않는다는 것입니다. 다음 코드 예제입니다CMake add_jar with INCLUDE_JARS not working

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONException 

가 org.json 항아리 오른쪽 클래스 경로에 있어야합니다 :

add_jar(testJar 
    SOURCES 
     sources/com/test/Main.java 
    INCLUDE_JARS 
     ${CMAKE_SOURCE_DIR}/extern/org.json/json-20171018.jar 
    ENTRY_POINT com.test.Main 
) 

"testJar.jar -jar 자바"로 testJar을 실행 나에게 다음과 같은 오류를 준다? 클래스 패스와 함께 매니페스트 파일을 추가하면 문제가 해결되지만 매니페스트 파일 없이는이를 수행 할 수 있습니까?

그리고 네, 저는 프로젝트의 제한으로 내가

답변

0

옵션 INCLUDE_JARS은 주어진 외부 항아리에 클래스 경로에 추가되어 있는지 확인합니다 :) 그렇게 할 수는 없지만 구축 받는다는 또는 Gradle을을 사용 지정된 Java 원시 파일의 컴파일. jar 파일은 빌드 디렉토리에 복사되거나 add_jar에 의해 생성 된 jar 파일에 추가되지 않습니다.

매니페스트 파일의 외부 항아리의 포함 수동으로 testJar, 즉 :

java -cp path/to/json-20171018.jar -jar testJar.jar 
를 실행시 클래스 패스에 추가, 당신을위한 옵션이없는 경우