我的java文件:
package hello;
public class helloworld {
public static void main(String[] args) {
// Greeter greeter = new Greeter();
System.out.println("Hello World");
}
}
我的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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework</groupId>
<artifactId>gs-maven</artifactId>
<packaging>jar</packaging>
<version>0.1.0</version>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<mainClass>src.main.java.hello.helloworld.Main</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
我的目录结构是
helloworld
pom.xml
src
main
java
hello
helloworld.java
我用
编译了它 mvn -e compile
我的跑步命令是
mvn -e exec:java -Dexec.mainClass="src.main.java.hello.helloworld.Main"
我收到以下错误
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-
plugin:1.3.2:java (default-cli) on project gs-maven: An exception
occured while executing the Java class. src.main.java.hello.helloworld.Main -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to
execute goal org.codehaus.mojo:exec-maven-plugin:1.3.2:java
(default-cli) on project gs-maven: An exception occured while
executing the Java class. src.main.java.hello.helloworld.Main
我不明白这是什么意思?如何运行我的java程序并查看输出“hello world”。
答案 0 :(得分:4)
更改:
<mainClass>src.main.java.hello.helloworld.Main</mainClass>
致:
<mainClass>hello.helloworld</mainClass>
使用以下方式运行:
mvn -e exec:java
或
mvn -e exec:java -Dexec.mainClass="hello.helloworld"
您需要了解,在向类添加package语句时,类的完全限定名称应为package.classname。在您的情况下,package语句为package hello;
,您的类为helloworld
,因此您的类的完全限定名称为hello.helloworld
而不是src.main.java.hello.helloworld.Main
。那是你出错的地方。请注意,在移动到maven之前,最好使用-cp选项来使用java和javac命令。
答案 1 :(得分:0)
nitpick:将您的班级名称更改为HelloWorld而不是helloworld, 并且你将主类输入hello.HelloWorld
类名应该是名词,混合大小写的第一个字母 每个内部词都大写。尽量保持你的班级名称简单 和描述性的。使用整个单词 - 避免使用缩写词和缩写词 (除非缩写比长形式更广泛使用, 例如URL或HTML)。,示例类Raster; class ImageSprite;