2017-11-15 7 views
0

私はCMakeを使ってadd_jarコマンドでjarファイルをコンパイルしています。問題は、INCLUDE_JARSを追加して外部JARへの依存関係を指定しようとすると、コードが実行されないことです。ここでは、コードの例である: "testJar.jar -jar javaの" とtestJarを実行CMake add_jar with INCLUDE_JARS not working

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 
) 

は私に次のエラーを与える:

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

org.jsonジャーは右、クラスパスにすべきですか?クラスパスでマニフェストファイルを追加すると問題は解決しますが、マニフェストファイルなしでこれを行う方法はありますか?

そして、はい、私は、プロジェクト内の制約のように私は

答えて

0

オプションINCLUDE_JARSのみ与えられた外部のjarファイルは時にクラスパスに追加されていることを確認します:)ことを行うことはできませんが、構築するためのMavenやのGradleを使用します指定されたJavaソースファイルのコンパイル。 jarファイルはビルドディレクトリにコピーされず、add_jarによって生成されたjarファイルにも追加されません。

マニフェストファイルに外部jarファイルを含めることはあなたのためのオプションではない場合は、手動でtestJarを実行している時にクラスパスに追加し、すなわち:

java -cp path/to/json-20171018.jar -jar testJar.jar