【问题标题】:Running Java project through command line (with Maven dependencies)通过命令行运行 Java 项目(带有 Maven 依赖项)
【发布时间】:2019-07-04 06:21:53
【问题描述】:

我想通过我的终端 (mac) 运行我正在工作的 Java 项目。它使用 Maven 来获取所需的依赖项。任何帮助将不胜感激。

首先我运行了推荐: mvn clean install

下一步: mvn dependency:copy-dependencies

最后: cd target/ java -cp MyProject-1.0-SNAPSHOT.jar:dependency Main

不幸的是,抛出了以下错误(清楚地表明没有正确使用依赖项):

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/parser/JSONParser at Main$Quote.quoteMachine(Hi.java:21) at Main.main(Hi.java:12) Caused by: java.lang.ClassNotFoundException: org.json.simple.parser.JSONParser ...

【问题讨论】:

  • dependency 目录是否包含预期的依赖项?如果是这样,您不应该使用dependency/* 吗?
  • 它们都存在于我的依赖文件夹中(在目标目录中)
  • 所以 maven 按预期完成了它的工作,问题出在您和 java 可执行文件之间。您尝试添加dependency/* 吗?

标签: java macos maven terminal


【解决方案1】:

我设法通过将其添加到我的 POM 文件中来解决问题:

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

在此之后,我只需在终端中运行以下命令:

mvn clean install

然后:

mvn exec:java

【讨论】:

【解决方案2】:

您需要在类路径中包含json-simple-.jar

【讨论】:

  • 命令“java -cp MyProject-1.0-SNAPSHOT.jar:dependency Main”不这样做吗?
  • 它是否出现在您部署的 Web 应用程序的 WEB-INF/lib 文件夹中?
  • 我只是想在本地终端上运行它,没有网络应用程序
  • 右键项目->构建路径->配置构建路径->java构建路径->添加外部jars->选择jar文件。还将构建路径条目添加到部署程序集中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-08
  • 2019-04-01
  • 1970-01-01
  • 2015-06-05
  • 1970-01-01
  • 1970-01-01
  • 2018-09-06
相关资源
最近更新 更多