相关疑难解决方法(0)

无法执行jar文件:"没有主要清单属性"

我已经安装了一个应用程序,当我尝试运行它时(它是一个可执行的jar)没有任何反应.当我从命令行运行它时:

java -jar"app.jar"

我收到以下消息:

"app.jar"中没有主要的清单属性

通常,如果我自己创建了程序,我会在清单文件中添加一个主类属性.但在这种情况下,由于文件来自应用程序,我不能这样做.我也尝试提取jar以查看是否可以找到主类,但是有许多类,并且它们中没有一个在其名称中包含"main"一词.必须有办法解决这个问题,因为程序在其他系统上运行正常.

java program-entry-point jar manifest

875
推荐指数
21
解决办法
125万
查看次数

使用Gradle创建可运行的JAR

到目前为止,我通过Eclipse"Export ..."功能创建了可运行的JAR文件,但现在我切换到IntelliJ IDEA和Gradle进行构建自动化.

这里的一些文章提出了"应用程序"插件,但这并不完全导致我期望的结果(只是一个JAR,没有启动脚本或类似的东西).

如何通过Eclipse"Export ..."对话框实现相同的结果?

java jar gradle

128
推荐指数
8
解决办法
15万
查看次数

Gradle Output Jar没有Main-Class

我有以下简单的build.gradle文件:

apply plugin: 'application'
apply plugin: 'java'

mainClassName = 'com.kurtis.HelloGradle'
Run Code Online (Sandbox Code Playgroud)

以下单个java文件位于src/main/java/com/kurtis/HelloGradle.java:

package com.kurtis;

public class HelloGradle {

    public static void main(String[] args) {

        System.out.println("Hello gradle");
    }

}
Run Code Online (Sandbox Code Playgroud)

但是,如果我运行,gradle build我会在build/lib没有主类设置的目录中获得一个jar .它的清单文件没有Main-Class条目.为什么是这样?

java jar gradle

7
推荐指数
1
解决办法
6021
查看次数

执行jar时intellij中的“没有主要清单属性”错误

我正在处理一个我想作为 jar 执行的 kotlin 项目。这一切都是在 IntelliJ Idea 中完成的,我开始使用工件制作罐子。

我遵循的过程是(如创意指南所示):

  1. 从项目结构中添加工件(作为 jar)
  2. 构建罐子
  3. 运行罐子

在此之后,我得到一个

'no main manifest attribute, in ____.jar'
Run Code Online (Sandbox Code Playgroud)

在阅读了几个堆栈溢出问题后,我尝试了什么:

  • 检查清单文件是否在正确的文件夹中并且在工件中具有正确的路径
  • 将代码添加到 jar->manifest 部分的 build.gradle 文件
  • 尝试将清单内容移动到资源文件夹的方法
  • 检查 jar 是否存在
  • 将清单内容移动到不同的文件夹(java、kotlin、out 文件夹)
  • 确保清单文件的格式正确

以上所有都没有奏效。

让我感到困惑的是,即使我将清单文件更改为“不正确”的格式,它仍然会出现相同的错误。工件详细信息中所述的路径是正确的,但即使我故意在清单文件中输入不正确的项目,也没有区别。不确定这是否是“真正的”问题,但我也不知道如何解决这个问题

jar intellij-idea kotlin

6
推荐指数
1
解决办法
7128
查看次数

运行使用Gradle构建的JAR文件时,"没有主清单属性"

我使用Gradle编写了一个小型Java应用程序来构建它.该应用程序来自本教程,包含2个类:HelloWorld(主类)和Greeter.该build.gradle文件包含2个部分(以及其他部分,目前无关紧要):

apply plugin: 'application'
mainClassName = 'hello.HelloWorld'
Run Code Online (Sandbox Code Playgroud)

dependencies {
compile "joda-time:joda-time:2.2"
}
Run Code Online (Sandbox Code Playgroud)

(这是必要的,因为HelloWorld类导入了org.joda.time.LocalTime类).我可以构建应用程序gradle build并运行它gradle run.一切都很好,我得到了结果.但是,当我尝试运行它时java -jar HelloWorld.jar,我得到了错误No main manifest attribute.在StackOverflow上找到的解决方案之一建议运行该文件

java -cp HelloWorld.jar hello.HelloWorld
Run Code Online (Sandbox Code Playgroud)

要么

java -cp HelloWorld.jar HelloWorld
Run Code Online (Sandbox Code Playgroud)

第一个返回Could not find or load main class HelloWorld,第二个返回java.lang.NotClassDefFoundError" org/joda/time/LocalTime.JAR存档包含以下文件:

  0 Mon Jul 06 13:13:46 CEST 2015 META-INF/
 25 Mon Jul 06 13:13:46 CEST 2015 META-INF/MANIFEST.MF
  0 Mon Jul 06 13:13:46 CEST 2015 hello/
369 …
Run Code Online (Sandbox Code Playgroud)

java program-entry-point jar manifest gradle

5
推荐指数
1
解决办法
7431
查看次数