我已经看了几个不同的线程,没有找到解决方案。我做了一个项目,使用java和Gradle从google sheets检索数据。我已经创建了一个工件,并通过IntelliJ构建了jar文件。当我尝试使用“java-jar filename.jar”通过终端运行jar时,我得到“no main manifest attribute,in filename.jar”
My 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方法是什么类,这就是为什么这个errormessage对我来说没有意义的原因。有人对此有解决办法吗?
我遵循了Sheets API quickstart中的步骤来设置应用程序。之后,我按照另一个答案中的步骤生成.jar文件,这说明您应该在jar属性中的build.gradle文件中声明清单文件。
之后,当运行生成的.jar文件时,我得到了一个“无效签名文件”错误,我可以通过在jar属性中添加下面一行来修复这个错误,如下所述:
exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
生成.jar文件后,您可以在项目的build/libs
目录中找到它。我的endbuild.gradle
文件如下所示:
apply plugin: 'java'
apply plugin: 'application'
group 'egs'
version '1.0-SNAPSHOT'
mainClassName = 'SheetsQuickstart'
sourceCompatibility = 1.8
targetCompatibility = 1.8
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'
}
jar {
manifest {
attributes 'Main-Class': 'SheetsQuickstart'
}
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
}
我知道有很多像这样的题目,但我没有找到答案我的问题。我已经在IntelliJ中创建了JAR文件,并在项目结构中构建了工件。在Java文件夹中,我有一个包META-INF和manifest.mf: 那么我是否应该将它手动添加到IntelliJ中的JAR中呢? Edit:CrazyCoder给出了一个很好的说明,说明META-INF应该在resourse文件夹中,但是我的IntelliJ默认设置一开始
我正在尝试运行由maven shade插件创建的jar。我正在以以下方式配置主类: 编辑:我使用jar tf app.jar检查了jar的内容,看到了一个manifest.mf文件。但它没有main类的条目。我如何确保jar中的清单文件中有这个条目,以便在shade插件配置中添加它?
我知道jar文件应该有一个manifest.mf main-class:属性,以便有一个入口点并使jar文件可以运行。现在,我有了一个jar文件,我已经在下面构建了它。这些类都是卷饼包的一部分。我的MANIFEST.MF文件如下所示:
我最近才开始在Java中玩弄Maven。测试我的项目的时间到了,它在NetBeans窗口中运行良好,运行了app.java(com.mycompany.app)中的主类,但是当我试图从命令行运行它时,我得到了一个错误: 有事吗?
我写了一个简单的kotlin helloworld程序hello.kt 然后我用kotlinc编译了它 没有错误,你好。jar被生成。当我运行它时 它说hello.jar中没有主清单属性 我想不出这个问题。我的科特林版本是1.3.40,JDK版本是1.8.0
我正在尝试运行这个Java GUI应用程序,但我不确定如何让它运行。该项目位于:https://gitee.com/gangshushu/v7/tree/master/admon_gui/one-jar. 我最初的尝试是: javaone-jar-ant-task-0.97.jar 但我最后犯了一个错误: 在one-jar-ant-task-0.97中没有主清单属性。罐子 做一些搜索周围,未能运行