运行 Java 来自 Linux 终端的 Maven 程序:ClassNotFoundException
Run Java Maven program from Linux terminal: ClassNotFoundException
我有 Java 读取 Json 文件并获取一些数据的 Maven 项目。
但是我无法通过 Linux 终端 运行 我的程序。
包名:我的
类名:StartProgram
OS Ubuntu 20.04.2.064
行家 3.6.3
Java 14.0.2
我做了后续步骤:
mvn clean install
cd target
java -cp jsonReader-0.0.1-SNAPSHOT.jar my.StartProgram
输出:
Error: Could not find or load main class my.StartProgram
Caused by: java.lang.ClassNotFoundException: my.StartProgram
我的一部分 pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>my.StartProgram</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
我该如何解决?提前谢谢你。
项目目录中的简单方法:
mvn exec:java -Dexec.mainClass="StartProgram"
另一种方式:
您的项目依赖于另一个外部库,因此当您使用 java -cp ...
时,您必须提供所有这些库。
您可以通过以下方式构建依赖列表(当您的 pom 更改时需要 运行 一次):
mvn dependency:build-classpath -Dmdep.outputFile=cp.txt
然后您可以通过以下方式 运行 您的程序:
java -cp `cat cp.txt`:target/jsonReader-1.0-SNAPSHOT.jar StartProgram
我有 Java 读取 Json 文件并获取一些数据的 Maven 项目。 但是我无法通过 Linux 终端 运行 我的程序。
包名:我的
类名:StartProgram
OS Ubuntu 20.04.2.064
行家 3.6.3
Java 14.0.2
我做了后续步骤:
mvn clean install
cd target
java -cp jsonReader-0.0.1-SNAPSHOT.jar my.StartProgram
输出:
Error: Could not find or load main class my.StartProgram
Caused by: java.lang.ClassNotFoundException: my.StartProgram
我的一部分 pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>my.StartProgram</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
我该如何解决?提前谢谢你。
项目目录中的简单方法:
mvn exec:java -Dexec.mainClass="StartProgram"
另一种方式:
您的项目依赖于另一个外部库,因此当您使用 java -cp ...
时,您必须提供所有这些库。
您可以通过以下方式构建依赖列表(当您的 pom 更改时需要 运行 一次):
mvn dependency:build-classpath -Dmdep.outputFile=cp.txt
然后您可以通过以下方式 运行 您的程序:
java -cp `cat cp.txt`:target/jsonReader-1.0-SNAPSHOT.jar StartProgram