【发布时间】:2020-02-13 13:45:22
【问题描述】:
我正在尝试从命令行运行一个 Maven 包,但每次我去构建它或之后运行它时,我都会得到:
Error: Could not find or load main class utility.Main
Caused by: java.lang.ClassNotFoundException: utility.Main
我搜索了多个 SO 帖子,尝试在 pom.xml 中进行更改,但似乎没有任何效果。它可以在 IDE 中工作,但不能在 CLI 中工作。
这是我的 pom.xml 的构建部分:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>utility.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
我到底做错了什么?
使用请求的信息更新:
package utility;
import data.UMLEnvironment;
public class Main {
public static void main(String[] args) {
run();
}
public static void run() {
UMLEnvironment env = new UMLEnvironment();
Console console = new Console(env);
console.run();
}
}
我确实看到“Main.class”保存在目标/类/实用程序中。布局是:
src
-main
--java
---utility
----Main.java
----Otherstuff.Java
---data
----MoreStuff.java
---config
----AndALittleMoreStuff.java
编辑:我想出了解决办法。我试图通过java -cp target/mmouse-uml-0.0.2-SNAPSHOT.jar:target/mmouse-uml-0.0.2-SNAPSHOT-jar-with-dependencies.jar utility.Main 运行它,而我真的只需要像这样运行它:java -cp target/mmouse-uml-0.0.1-SNAPSHOT-jar-with-dependencies.jar utility.Main。
【问题讨论】:
-
请附上
Main.java的源代码,以及项目的布局。该文件是否有package utility?你看到Main.class生成了吗? -
tour
Mainclass的全称是什么? -
使用请求的信息更新了 OP。
标签: java xml maven command-line-interface pom.xml