簡體   English   中英

通過命令行使用mvn運行Java程序

[英]Running Java program using mvn through command line

我試圖通過命令行運行Java程序TopicPublisher.java 通過Maven指定了幾個依賴項。

在帶有pom.xml文件的目錄中,我運行了以下命令: mvn cleanmvn packagejava -cp target/SOM_Enrichment-1.0-SNAPSHOT.jar TopicPublisher

我收到以下錯誤:

Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: om/solacesystems/jcsmp/JCSMPStreamingPublishEventHandler

下面是我的目錄樹的屏幕截圖:

目錄樹

任何想法如何解決這個問題?

[編輯]

Pom文件:

<?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/xsd/maven-4.0.0.xsd“> 4.0.0

<groupId>CAMM</groupId>
<artifactId>SOM_Enrichment</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id> <!-- this is used for inheritance merges -->
                    <phase>package</phase> <!-- bind to the packaging phase -->
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

</build>

<dependencies>
    <dependency>
        <groupId>com.solacesystems</groupId>
        <artifactId>sol-jcsmp</artifactId>
        <version>[10,)</version>
    </dependency>
</dependencies>

在沒有看到完整的POM.xml我假設您尚未將最終工件構建為“胖子”。 我的意思是說JAR不僅包含您自己的類,而且包含所有第三方依賴項。

您將需要使用Maven程序集插件Maven陰影插件之類的工具來完成此操作。 從屏幕快照中,盡管我看到您正在使用IntelliJ,所以您顯然還應該能夠通過IDE運行,僅用於測試目的。

您的程序從pom.xmlcom.solacesystems依賴項加載類,但是您的類路徑僅包含構建工件jar。 按照@Kerry的建議,構建一個胖jar,或使用exec-maven-plugin從命令行運行。 在您的項目目錄中(執行mvn package ),執行:

mvn exec:java -Dexec.mainClass=TopicPublisher

該插件根據pom中定義的依賴項構建classpath參數。 有關更多選項,請參見https://www.mojohaus.org/exec-maven-plugin/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM