执行jar包中指定main方法

执行jar包中指定main方法通过maven将应用打成jar包之后,可以通过java-jar ***.jar来执行,会运行指定的main方法,主要是 MANIFEST.MF中指定的main方法;那么如果有多个main方法的时候如何运行指定的main方法哪,可以通过下面命令去执行java-classpath****.jar****.****.className[args]这里的****.****指的是…

大家好,又见面了,我是你们的朋友全栈君。

通过maven将应用打成jar包之后,可以通过java -jar  ***.jar来执行,会运行指定的main方法,主要是 MANIFEST.MF 中指定的 main 方法;那么如果有多个main方法的时候如何运行指定的main方法哪,可以通过下面命令去执行

java -classpath ****.jar ****.****.className [args]

这里的****.****指的是包名;

****.className是类名称;

args指传递进去的参数;

综上:运行jar有两种情况

1>maven打包之后通过MANIFEST.MF指定main方法

java -jar mplus-service-jar-with-dependencies.jar

 如果是maven的话,可以在pom.xml中添加如下代码来指定main方法

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <appendAssemblyId>false</appendAssemblyId>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <classpathPrefix>lib/</classpathPrefix>
              <mainClass>io.test.main.MainOfDiskMount</mainClass>
            </manifest>
          </archive>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>assembly</goal>
            </goals>

          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

主要是这里面的mainfest代码块;mainClass中指定执行的main方法的包名+类名;然后指定maven package命令,可以看到打包出来的jar中的META-INF中MANIFEST.MF的内容添加了一项内容

执行jar包中指定main方法

这里面就是我们在pom.xml中指定的main方法;然后打包成jar运行的时候,如果要添加参数,直接添加在后面就可以了;

java -jar mplus-service-jar-with-dependencies.jar aaa bbb

 

2>如果没有在MANIFEST.MF中指定,jar中有多个main方法,指定运行某个特定的main方法的命令

java -cp mplus-service-jar-with-dependencies.jar com.smbea.dubbo.bin.Console aaa bbb

 

然后再main方法中添加打印的逻辑,来看下执行的参数情况

执行jar包中指定main方法

其实就是把aaa,bbb的值作为args参数传递进去了;

总结:通过maven 把项目打包成jar,然后运行main方法,有两种情况,一种是在MANIFEST.MF中指定运行的main方法;另外一种是通过命令行指定运行的main方法的包;同时可以添加对应的参数传递到main方法中去;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138390.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java程序设计(基础)- 基本语法

    Java程序设计(基础)- 基本语法

    2021年7月21日
    51
  • UVa 884 – Factorial Factors

    UVa 884 – Factorial Factors

    2021年12月16日
    38
  • kali——kali更新源

    kali——kali更新源为什么更新源官方下载并安装的KaliLinux,在进行原件升级的时候会首先默认选择到Kali官方的源地址去下载,位于国内的用户由于网络线路的问题,下载速度会非常的慢,因此修改为国内的源,方便快速!1.更新软件源sudovim/etc/apt/sources.list2.选择比较合适的源(选择一个即可)下面是国内的一些kali源#中科大debhttp://mirrors.us…

    2022年5月27日
    41
  • Java学习必备书籍推荐终极版!

    Java学习必备书籍推荐终极版!很早就想把JavaGuide的书单更新一下了,昨晚加今天早上花了几个时间对之前的书单进行了分类和补充完善。虽是终极版,但一定还有很多不错的Java书籍我没有添加进去,会继续完善下去。希望这篇文章对你有帮助,不要再无书可看。欢迎在留言区补充你觉得不错的Java方向的书籍或者计算机基础必看的书籍!你也可以直接到Github给我提PR,参与这个书单的完善。Java基础《HeadFir…

    2022年6月17日
    34
  • Oracle sql调优(网络优化知识点)

    文章目录一、访问数据的方法1、直接访问数据1.1全表扫描1.2ROWID扫描2、访问索引2.1索引唯一扫描2.2索引范围扫描2.3索引全扫描2.4索引快速全扫描2.5索引跳跃式扫描拓展补充本博客介绍一下属于oracle优化器范畴的一些基础知识,访问数据的方法,分为直接访问数据的方法和访问索引的方法两种,然后有了这些基础知识后,可以参考学习我的另外一篇博客:Oracle优化器简介,对…

    2022年4月13日
    44
  • C++ — TranslateMessage函数

    C++ — TranslateMessage函数TranslateMessage是用来把虚拟键消息转换为字符消息。由于Windows对所有键盘编码都是采用虚拟键的定义,这样当按键按下时,并不得字符消息,需要键盘映射转换为字符的消息。 TranslateMes…

    2025年9月4日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号