Я только начал изучать Java, но проблемы возникают почти на каждом шагу ...
По крайней мере, я хочу, чтобы этот супер простой учебник по началу работы работал ( с официальной страницы 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>