运行 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