我已经安装了一个应用程序,当我尝试运行它时(它是一个可执行的jar)没有任何反应.当我从命令行运行它时:
java -jar"app.jar"
我收到以下消息:
"app.jar"中没有主要的清单属性
通常,如果我自己创建了程序,我会在清单文件中添加一个主类属性.但在这种情况下,由于文件来自应用程序,我不能这样做.我也尝试提取jar以查看是否可以找到主类,但是有许多类,并且它们中没有一个在其名称中包含"main"一词.必须有办法解决这个问题,因为程序在其他系统上运行正常.
到目前为止,我通过Eclipse"Export ..."功能创建了可运行的JAR文件,但现在我切换到IntelliJ IDEA和Gradle进行构建自动化.
这里的一些文章提出了"应用程序"插件,但这并不完全导致我期望的结果(只是一个JAR,没有启动脚本或类似的东西).
如何通过Eclipse"Export ..."对话框实现相同的结果?
我有以下简单的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条目.为什么是这样?
我正在处理一个我想作为 jar 执行的 kotlin 项目。这一切都是在 IntelliJ Idea 中完成的,我开始使用工件制作罐子。
我遵循的过程是(如创意指南所示):
在此之后,我得到一个
'no main manifest attribute, in ____.jar'
Run Code Online (Sandbox Code Playgroud)
在阅读了几个堆栈溢出问题后,我尝试了什么:
以上所有都没有奏效。
让我感到困惑的是,即使我将清单文件更改为“不正确”的格式,它仍然会出现相同的错误。工件详细信息中所述的路径是正确的,但即使我故意在清单文件中输入不正确的项目,也没有区别。不确定这是否是“真正的”问题,但我也不知道如何解决这个问题
我使用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)