运行从基于 gradle 的项目构建的可执行 jar 文件

2022-09-01 17:04:05

我有一个基于gradle的独立项目。当我进行 gradle 构建时,jar 是在 build/libs 下生成的。如何从命令行运行此可执行jar?我试过了:但是对于导入的类,我没有得到任何ClassFoundException。如何将依赖 jar 作为类路径的一部分?java -cp build/libs/foo.jar full.package.classname


答案 1

由于问题用 gradle 标签标记,我假设你想从 gradle 构建运行 jar。我还假设您在gradle构建中使用插件。java

在渐变中添加下一行:

task runFinalJar(type: JavaExec) {
   classpath = files('build/libs/foo.jar')
   classpath += sourceSets.main.runtimeClasspath
   main = full.package.classname
}

现在,您可以将任务包含在生成过程中:

build.dependsOn.add("runFinalJar")

或者只是从命令行运行它:

gradle build runFinalJar

更新像彼得建议的那样使用应用程序插件更干净


答案 2

添加一个简单的任务来运行 jar

task runJar(type: JavaExec) {
    main = "-jar";
    args jar.archivePath
}

更新:现已弃用,您可以使用jar.archivePathjar.archiveFile.get()

task runJar(type: JavaExec) {
    main = "-jar";
    args jar.archiveFile.get()
}

推荐