我刚刚开始学习Java,但几乎每一步都遇到问题...... 至少我想做this super simple getting started tutorial工作(来自官方 Maven 页面):)
我已经完成了本教程中的每一步,并构建了项目,但无法运行它。
所以,在mvn package
之后我已经BUILD 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
Apache 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>
最佳答案
您可以使用这 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
关于Java Maven 无法找到或加载主类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53296554/