【发布时间】:2020-07-28 17:58:54
【问题描述】:
我一直在查看几个不同的线程,但没有找到解决方案。我做了一个项目,它使用 java 和 gradle 从谷歌表格中检索数据。我已经创建了一个工件并通过 intelliJ 构建了 jar 文件。当我尝试使用“java -jar filename.jar”通过终端运行 jar 时,我得到“在 filename.jar 中没有主清单属性”
我的 MANIFEST.MF 位于 main/java/META-INF 并具有以下简单结构
Manifest-Version: 1.0
Main-Class: Main
build.gradle 文件结构如下:
plugins {
id 'java'
}
group 'filename'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile 'com.google.api-client:google-api-client:1.30.4'
compile 'com.google.oauth-client:google-oauth-client-jetty:1.30.4'
compile 'com.google.apis:google-api-services-sheets:v4-rev581-1.25.0'
}
很明显,我已经在哪个类中说明了 main 方法,这就是为什么这个错误消息对我来说毫无意义。有人对此有解决方案吗?
【问题讨论】:
-
你在 jar 的根目录下看到这个吗 -> META-INF/MANIFEST.MF(解压后)
-
是的,我愿意。它包含大量信息。虽然没有关于主要课程的内容
-
你在你的 gradle 文件中定义了这样的东西?
jar { manifest { attributes( 'Main-Class': 'Main' ) } }? -
如果我是正确的。这会在运行时创建另一个 jar.file 吗?我应该使用这个 jar 文件,而不是我通过 intelliJ 使用工件创建的那个吗?我的 build.gradle 文件中确实有这个。但是,使用该命令创建的 jar 文件不包含任何依赖项或类似内容。它只包含我项目中的文件,以及清单文件
标签: java google-sheets jar