如何使用命令行运行maven创建的jar文件

时间:2013-04-08 01:09:33

标签: java maven jar

我需要一些帮助,尝试使用命令行运行以下maven项目: https://github.com/sarxos/webcam-capture,网络摄像头捕获qrcode示例是我正在尝试运行的示例。我使用Eciplse IDE运行它,但需要将其移动到仅使用命令行。我有由maven创建的jar。

我正在尝试

java -classpath ./webcam-capture/target/webcam-capture-0.3.10-SNAPSHOT.jar  com.github.sarxos.webcam.WebcamQRCodeExample      

但我一直得到

Exception in thread "main" java.lang.NoClassDefFoundError: com/github/sarxos/webcam/WebcamQRCodeExample
Caused by: java.lang.ClassNotFoundException: com.github.sarxos.webcam.WebcamQRCodeExample

4 个答案:

答案 0 :(得分:100)

只需使用exec-maven-plugin

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <configuration>
                <mainClass>com.example.Main</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

然后你运行程序:

mvn exec:java

答案 1 :(得分:15)

第1步:在pom.xml中添加此内容

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

第二步:逐行执行此命令。

cd /go/to/myApp
mvn clean
mvn compile 
mvn package
java -cp target/myApp-0.0.1-SNAPSHOT.jar go.to.myApp.select.file.to.execute

答案 2 :(得分:11)

使用此命令。

mvn package

制作包jar文件。然后,运行此命令。

java -cp target/artifactId-version-SNAPSHOT.jar package.Java-Main-File-Name

after mvn package command. Target folder with classes, test classes, jar file and other resources folder and files will be created

键入您自己的artifactId,版本和包以及java主文件。

答案 3 :(得分:2)

我不确定你的情况。但据我所知,从cmd运行任何jar文件我们可以使用以下命令:

转到保存jar文件的目录:

java -jar <jarfilename>.jar

但您可以查看以下链接。我希望它能帮到你:

Run Netbeans maven project from command-line?

http://www.sonatype.com/books/mvnref-book/reference/running-sect-options.html