我创建了简单的java程序(maven with pom),当我用CMD运行一些命令时,它应该在给定路径下创建一个文件...我做mvn clean install
成功完成,
现在我想从命令行使用这个创建的jar,如下面的那样:
java -jar "/Users/i012/IdeaProjects/myproj/target/test.rts-1.0-SNAPSHOT.jar" path2genfile2create
哪个应该运行我的程序(这是我第一次尝试这样的东西......)
但我得到的错误是:
no main manifest attribute, in /Users/i012/IdeaProjects/myproj/target/test.rts-1.0-SNAPSHOT.jar
这里可能缺少什么?哪个清单属性?
错误不是来自我创建的课程 ...
我创建了一些META-INF / MANIFEST.MF没有帮助,但可能是错误的
答案 0 :(得分:8)
如果您正在使用Maven程序集插件或IDE工具,则需要#include <stdio.h>
void main() {
char ch = '?';
float f;
double a = 10.00, b = 20.00;
int i;
for (i = 0; i < 10; i++) {
scanf("%c", &ch);
switch (ch) {
case '+':
f = a + b;
printf("f = %.0f\n", f);
break;
case '-':
f = a - b;
printf("f = %.0f\n", f);
break;
case '*':
f = a * b;
printf("f = %.0f\n", f);
break;
case '/':
f = a / b;
printf("f = %.2f\n", f);
break;
default:
printf("invalid operator\n");
}
}
return 0;
}
元素。这就是我使用的:
mainClass
答案 1 :(得分:4)
清单是jar中路径META-INF / MANIFEST.MF中的一个文件,它定义了类路径和运行jar文件的主类等属性。
基本结构如下:
Manifest-Version: 1.0
Created-By: 1.7.0_06 (Oracle Corporation)
您可以通过添加属性Main-Class: classname
来定义入口点。
为了使用给定的清单创建jar文件,您可以:
jar cfm MyJar.jar Manifest.txt MyPackage/*.class
之类的命令手动创建具有给定清单和类的jar。您可以找到有关jar清单文件 here 的更多信息。
答案 2 :(得分:2)
在我的情况下,我使用的是spring-boot,但我没有在我的pom中提到我的构建器,所以我修复了它:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
答案 3 :(得分:1)
我遇到了同样的问题,通过添加这个插件解决了:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.somepackage.CLASSWITHMAINMETHODE</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
答案 4 :(得分:0)
您需要一个主类来执行您的应用程序。请尝试以下方法。它对我有用。
如果使用的是maven构建工具,请将以下代码段添加到pom.xml文件中。
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.validator.App</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>