当前位置: 首页 > 知识库问答 >
问题:

Maven错误:无法找到或加载主类

王庆
2023-03-14

我使用的是Java Maven程序,我不知道输入什么作为

每次它都说:

Maven Error: Could not find or load main class ...

我在我的pom中写了这个。xml(减去??

  <build>
  ...
  <plugins>
  ...
    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.5.3</version>
        <configuration>
            <descriptors>
                <descriptor>src/main/assembly/jar-with-dependencies.xml</descriptor>
            </descriptors>
            <archive>
                <manifest>
                    <mainClass> ??? </mainClass>
                </manifest>
            </archive>
        </configuration>
        <executions>
            <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            </execution>
        </executions>
    </plugin>
  ...
  </plugins>
  ...
  </build>

如何修复这些错误?


共有3个答案

苗运珧
2023-03-14

对我来说,问题与Maven无关,而是与我如何运行. jar有关。我写了一些代码,并用Maven将其打包为. jar。我用

java target/gs-maven-0.1.0.jar

并在操作中得到了错误。实际上,您需要-jar选项:

java -jar target/gs-maven-0.1.0.jar
慕兴平
2023-03-14

除非您出于设置主类以外的原因需要maven-asset-plugin,否则您可以使用maven-jar-plugin插件。

     <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <index>true</index>
                    <manifest>
                        <mainClass>your.package.yourprogram.YourMainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
     </plugins>

你可以在ATLauncher中看到这个插件。

“mainClass”元素应设置为程序入口点所在的类,例如:

package your.package.yourprogram;

public class YourMainClass {

    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
蓝鸿哲
2023-03-14

我使用Maven得到了这个错误,我发现了解决方案。

Error: Could not find or load main class com.mycompany.testapifactory.Main

我在Linux上使用java JDK 1.7版,我的pom。xml文件是Netbeans生成的默认文件,我使用这些命令进行编译,这些命令在正常的hello world java应用程序中运行良好:

mvn clean compile
java -jar target/TestAPIFactory-1.0-SNAPSHOT.jar com.mycompany.testapifactory.Main

发生了什么:

原来我的问题是,我的主要方法是扩展像这样的异国情调:

public class Main extends SomeExoticLibraryClass{
    public static void main(String[] args){
        //...
    }
}

正是主类的这种扩展导致了上述错误。

TLDR解决方案:

确保你的主类没有扩展任何第三方类。将它们重构到它们自己的类中。这个错误信息很糟糕,需要消除过程来找出该做什么。

 类似资料:
  • 我无法安装/使用Maven并收到以下错误。 错误:无法找到或加载主类org.codehaus.plexus.classworlds.launcher.Launcher 安装步骤: 下载二进制zip存档(3.8.5)并将其放在根C: 在系统变量中将 Java Home 和 Maven 主页设置为“JAVA_HOME”和“MAVEN_HOME” 将系统变量中的 Path 变量分别设置为“%JAVA_H

  • 问题内容: 我想连接我的java程序以连接数据库并检索数据。它的编译完美,但运行时即时得到这个 我已经安装了Java SQL驱动程序,并将jar路径作为CLASSPATH添加到环境变量中 问题答案: 您应该从这里下载驱动程序 和JAR文件需要添加到项目类路径。 首先,右键单击Eclipse Project,然后单击Project-> Build Path-> Configure Build Pat

  • 当我正常运行此代码时,它会吐出: 异常线程"main"java.lang.ClassNotFoundExcture: bookReader 在java.net.URLClassLoader.find类(URLClassLoader.java:381) 在java.lang.ClassLoader.load类(ClassLoader.java:424)<在sun.misc.启动$AppClassLo

  • 我是按照Spring的教程,一切都工作正常,直到我克隆我的项目,现在克隆的项目和原来的项目不想工作,我已经搜索槽整个堆栈溢出类似的问题,我无法解决这个问题,我已经清理了项目,重新启动eclipse,更新,添加和删除依赖项从pom.xml似乎没有什么工作。 这是我的主要课程: Beans.xml: 波姆。xml: 正如我所说,当我在同一个工作区复制粘贴项目时,一切都开始失败,当然我更改了名称。 这个

  • 问题内容: 我在笔记本电脑上有一个日食项目,我将其推送到Git https://github.com/chrisbramm/LastFM-History-Graph.git 它可以完全在我的笔记本电脑上运行,并且可以正常运行/构建,但是在我的台式机上,Eclipse没有显示错误 错误:找不到或加载主类lastfmhistoryguis.InputPanel 我尝试从以下位置构建项目: 但是什么也没

  • 此依赖项导致Eclipse Juno在pom.xml上给出一个红色十字标记,并在