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

我需要一些帮助来尝试使用命令行运行以下 maven 项目: Https://github.com/sarxos/webcam-capture ,webcam-catch-qrcode 示例就是我正在尝试运行的例子。我使用 Eciplse IDE 运行它,但是需要将它移到只使用命令行的位置。这罐子是 Maven 做的。

我在努力

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
171582 次浏览

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

转到保存 jar 文件的目录:

java -jar <jarfilename>.jar

但是你可以点击以下链接,我希望它能帮到你:

从命令行运行 Netbeans maven 项目?

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

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

第一步: 在 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

使用这个命令。

mvn package

创建包 jar 文件。然后,运行以下命令。

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

在 mvn 包命令之后。目标文件夹中包含类、测试类、 jar 文件和其他资源文件夹及文件将被创建

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