Jar 文件不做任何事情,bat 文件可以找到主要的 class

Jar files doesn't do anything and bat file can find the main class

我有一个 java 程序我刚刚学习了一个教程并且 .jar 是在 Apache Netbeans 11 中使用 Maven 创建的。但是 .jar 没有执行...没有任何反应。我什至有一个 .bat 文件 运行 但它 says:Windows 找不到文件 NewMain 这是主要 class.

这是我用过的专家:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany</groupId>
    <artifactId>mavenproject3</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties> 
    <dependencies>
    <dependency> <groupId>com.apple</groupId> <artifactId>AppleJavaExtensions</artifactId> <version>1.4</version> </dependency>
    </dependencies>
       <build>
        <finalName>mavenproject3</finalName>
        <plugins>        
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>false</downloadJavadocs>
                </configuration>
            </plugin>           
            <plugin>
                <groupId>com.mycompany</groupId>
                <artifactId>mavenproject3</artifactId>
                <version>1.0-SNAPSHOT</version>
                <configuration>
//Versión de JDK con la cual se ha construido el proyecto
// 1.8 significa que se utilizó Java8
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>    
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>false</downloadJavadocs>
                </configuration>
            </plugin>    
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>            
                    <descriptorRefs>
//Sufijo que se le agregara al fichero JAR ejecutable
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>           
                    <archive>
                        <manifest>
//Aqui se establece el nombre de la clase principal
                            <mainClass>com.MainClass</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase> 
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

是不是少了什么东西或者放错地方了?

Manifest.mf

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: Usuario
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_231
Main-Class: MainClass

MainClass 不是主要的class

更新:
我已经做了改变

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: Usuario
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_231
Main-Class: NewMain

现在:NewMain parent class 未找到或加载

您必须按照以下方式进行诊断。

  1. 首先 运行 使用命令 java -jar <jar file name>.
  2. 的 .jar 文件
  3. 如果 运行 正确,则 jar 文件是好的。
  4. 如果jar文件没有运行,使用7zip解压.jar文件,检查Manifest.mf文件中是否定义了mainclass

同样,.bat 文件是 运行 jar 文件的帮助工具,它将具有与第 1 点中提到的相同的命令。

Jar 文件应在 Manifest.mf 中定义 Main-Class: name of the class containing the main (with package name) 参数。

包名必须在前:

<mainClass>com.mycompany.mavenproject3.NewMain</mainClass>

现在可以了