【问题标题】:How to use a .jar file in the Terminal?如何在终端中使用 .jar 文件?
【发布时间】:2019-03-27 08:44:44
【问题描述】:

所以我从事了一个项目,并在 Eclipse 中编写了所有代码。我将代码放在名为 src 的文件夹中,将我的库放在名为 lib 的文件夹中。问题是,我的代码需要在终端中执行。好吧,现在我得到了很多错误。所有这些都是因为缺少库。我尝试将.jar文件从lib文件夹导入到src文件夹,但代码仍然不起作用。

那么,如何在终端中“安装”这些库?

顺便说一句。我要安装的库是 com.google。我已经使用以下行克隆了它: git clone https://github.com/google/gson

【问题讨论】:

  • 你是如何构建项目的jar的?它是一个 Maven 构建吗?
  • @deHaar 这是我找到如何克隆它的地方:stackoverflow.com/questions/37975605/…
  • 好的,它是一个 maven 构建...您可以告诉 maven 将此库包含到您的项目的 jar 中,但这并没有在几分钟内解释。您必须使用 maven 插件(可能是 shade 插件)并创建一个包含 gson 库的 jar。 jar 会大很多,但不会寻找没有库的地方。
  • 你是使用Maven还是Gradle来安装依赖?或者您只是将所有需要的库放在您的 lib/ 文件夹中?
  • @deHaar 谢谢!你有任何关于这方面教程的链接吗?因为这听起来很难做到。

标签: java jar terminal gson


【解决方案1】:

首先,您必须使您的项目能够完美地与您的 IDE 或其他任何东西一起编译。

稍后,您应该创建可运行的 JAR 文件(如果需要,可以使用 eclipse,但世界 RUNNABLE jar 文件很重要。单击您的项目 > 导出 > 可运行的 jar 文件并在“启动配置”中选择您的主类。) .

最后,到控制台到你的JAR文件的路径下执行

java -jar file.jar

我认为它应该工作:)

【讨论】:

    【解决方案2】:

    如果你想从终端构建你的项目,你需要确保两件事。 1.你应该在mainfest文件中有主类属性。 2. jar 应该与所有依赖项一起编译。 (不过这会导致更大的罐子)

    您可以使用 maven 程序集插件来完成这两项工作。在build/plugins 中添加以下内容pom.xml

    <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.tanmayvijayvargiya.MainApp</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    

    用你的 mainClass 更新

    要构建 jar,请运行 mvn package。这将在您的目标文件夹中生成 jar。 接下来,运行 jar 运行 java -jar target/jar-name-with-dependencies.jar

    来源 Maven Assembly Plugin Usage

    【讨论】:

    • 感谢您的帮助!它已经在 randomkwiz 的帮助下工作了。但是,我仍然很欣赏这项工作!
    • 没问题!这可能会帮助那些根本不想在构建或部署管道期间使用 ide 的人。
    猜你喜欢
    • 2012-04-24
    • 2020-02-22
    • 2011-12-18
    • 2012-03-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多