代码之家  ›  专栏  ›  技术社区  ›  whitwhoa

错误:无法找到或加载主类-.jar文件执行

  •  2
  • whitwhoa  · 技术社区  · 7 年前

    我一直在挖掘,尽我所能来解决这个问题,但似乎什么都没有起作用。我刚在我的机器上安装了Intellij思想,并创建了一个新的Maven项目。我只是想执行一个hello world程序来验证所有的设置是否正确。然而,有些事情是不对的。

    在IDEA中运行应用程序时,我会按预期收到“Hello World”。但是,当运行maven包并生成.jar文件时,当我尝试执行该.jar文件时,会收到以下消息:

    C:\dev\lwjglplayground\target>java lwjgl-playground-1.0-SNAPSHOT.jar
    Error: Could not find or load main class lwjgl-playground-1.0-SNAPSHOT.jar
    Caused by: java.lang.ClassNotFoundException: lwjgl-playground-1.0-SNAPSHOT.jar
    

    我的第一个直觉是,我在Java安装中遇到了一些问题(在安装IDEA之前,我删除了Java 8 JDK并安装了JDK 11),但是我验证了我以前构建的其他.jar文件,正如预期的那样执行。

    我的 pom.xml 文件如下:

    <?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>whitwhoa</groupId>
        <artifactId>lwjgl-playground</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <properties>
            <start-class>whitwhoa.Main</start-class>
        </properties>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                    <configuration>
                        <release>11</release>
                        <archive>
                            <index>true</index>
                            <manifest>
                                <mainClass>whitwhoa.Main</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.1.1</version>
                    <configuration>
                        <archive>
                            <index>true</index>
                            <manifest>
                                <mainClass>whitwhoa.Main</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    这是我的 Main.java 文件:

    package whitwhoa;
    
    
    public class Main {
    
        public static void main(String[] args) {
            System.out.println("Hello World");
        }
    
    }
    

    这里有什么能让人觉得是配置错误的吗?我错过什么了吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   AlanK    7 年前

    通过 -jar 作为命令行参数的参数:

    java -jar lwjgl-playground-1.0-SNAPSHOT.jar