2015-08-24 174 views
0
編譯後的依賴性運行Java程序

我編我的Java程序,它具有使用搖籃一些依賴:與搖籃

gradle build 

當我跑我的java程序:

cd build/classes/main/ 
java HelloWorldWithLibs 

我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/api/client/json/JsonFactory at BigQueryStreamTest.main(BigQueryStreamTest.java:11) Caused by: java.lang.ClassNotFoundException: com.google.api.client.json.JsonFactory

什麼是正確的方式來運行這個Java程序所需的庫?

PS:當我在IntelliJ中運行程序時,所有庫在java命令的參數中。我希望能夠在沒有IDE的幫助下完成整個過程。

+0

使用'-classpath'選項運行添加缺少的依賴 – blgt

+0

如何獲取列表?我有大約100個依賴項,我只想包含每個依賴項的確切版本。 – poiuytrez

回答

0

這樣做的最簡單的方法是配置gradle這個內javaexec任務建立

task runMyClass(type: JavaExec, dependsOn: 'compileJava') { 
    main = 'foo.bar.MyClass' 
    classpath = sourceSets.main.runtimeClasspath 
    args 'arg1' 
} 

然後你就可以通過

gradle runMyClass 
1

執行它,你可以使用application gradle這個插件來運行應用程序。只需添加以下到您的buildscript:

apply plugin:'application' 

mainClassName = 'foo.bar.MyMainClass' 

,然後你可以從你的命令行

gradle run