首页 > 解决方案 > Java Maven 无法找到或加载主类

问题描述

我刚刚开始学习 Java,但几乎每一步都有问题......至少我想让这个超级简单的入门教程工作(来自官方 Maven 页面):)

我已经完成了本教程中的每一步,并且已经构建了项目但无法运行它。

因此,当mvn packageBUILD SUCCESSFUL尝试jar通过此命令启动文件时,java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App会发生错误:

Error: Could not find or load main class com.mycompany.app.App
Caused by: java.lang.ClassNotFoundException: com.mycompany.app.App

如何解决?

java版本“11.0.1”2018-10-16 LTS

阿帕奇 Maven 3.6.0

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

项目结构由该命令自动创建,如文档中所示

my-app
 |-src
 |  |-main
 |     |-java
 |        |-com
 |           |-mycompany
 |              |-app
 |                 |-App.java
 |-pom.xml
 |-target

App.java代码:

 package com.mycompany.app;

 /**
  * Hello world!
  *
 */
 public class App 
 {
     public static void main( String[] args )
     {
        System.out.println( "Hello World!" );
    }
}

pom.xml文件:

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>maven-test</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>maven-test</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <properties>
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>
  </properties>
</project>

我还必须添加这些行来制作工作mvn package命令:

<properties>
   <maven.compiler.source>1.6</maven.compiler.source>
   <maven.compiler.target>1.6</maven.compiler.target>
</properties>

标签: javamaven

解决方案


您可以使用以下 4 个命令重试:

> mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
> cd my-app
> mvn package
> java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App

在此处输入图像描述


推荐阅读