【问题标题】:Run java program with dependencies after compilation with Gradle使用 Gradle 编译后运行带有依赖项的 java 程序
【发布时间】:2015-08-24 13:58:32
【问题描述】:

我已经使用 Gradle 编译了我的 java 程序,它有一些依赖项:

gradle build

当我运行我的 java 程序时:

cd build/classes/main/
java HelloWorldWithLibs

我明白了:

线程“主”java.lang.NoClassDefFoundError 中的异常: com/google/api/client/json/JsonFactory 在 BigQueryStreamTest.main(BigQueryStreamTest.java:11) 原因: java.lang.ClassNotFoundException: com.google.api.client.json.JsonFactory

用所需的库运行这个 java 程序的正确方法是什么?

PS:当我在 IntelliJ 中运行程序时,所有库都在 java 命令的参数中。我希望能够在没有 IDE 的帮助下完成整个过程。

【问题讨论】:

  • 使用-classpath 选项添加缺失的依赖项
  • 如何获取列表?我有大约 100 个依赖项,我只想包含每个依赖项的确切版本。

标签: java maven intellij-idea gradle


【解决方案1】:

最简单的方法是在你的 gradle build 中配置一个javaexec 任务

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

然后你可以通过

gradle runMyClass

【讨论】:

    【解决方案2】:

    您可以使用application gradle 插件来运行您的应用程序。只需将以下内容添加到您的构建脚本中:

    apply plugin:'application'
    
    mainClassName = 'foo.bar.MyMainClass'
    

    然后你可以从你的命令行运行

    gradle run
    

    【讨论】:

      猜你喜欢
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 2018-06-13
      • 2016-05-26
      • 1970-01-01
      相关资源
      最近更新 更多