zoukankan      html  css  js  c++  java
  • java -jar 和 java -cp


    就是如果你使用了maven,使用了插件打包的方式的话,那么你就需要了解这俩用法的区别了。

    java -jar 必须要在 pom.xml 文件中指定主类,不可以指定一个主类,然后运行的时候在jar包后面继续指定主类
    java -cp 不需要在 pom.xml 文件中指定主类,主类是否指定看自己需要,然后运行的时候在jar包后面继续指定主类。

    例如:

    java -jar maven_pro-1.0-SNAPSHOT-jar-with-dependencies.jar dtwave.odps.utils.UploadSample
    
    java -cp maven_pro-1.0-SNAPSHOT-jar-with-dependencies.jar dtwave.odps.utils.UploadSample

    问题的地方就是因为pom文件打包配置的问题,mainClass是否指定的问题。

    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.5.3</version>
        <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
            <manifest>
                <mainClass></mainClass>
                <!-- <mainClass>dtwave.odps.utils.UploadSample</mainClass>-->
            </manifest>
        </archive>
        </configuration>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

    结论  

          java -jar 和 java -cp 两种方式,如果动态传入执行类,就用-cp,固定执行类就用-jar。

  • 相关阅读:
    shell test用法
    Makefile debug的经验
    Makefile 中:= ?= += =的区别
    Makefile中常用的函数
    Makefile选项CFLAGS,LDFLAGS,LIBS
    makefile双冒号规则
    makefile中的伪目标,强制目标和双冒号规则
    makefile 使用环境变量
    linux shell if语句使用方法
    linux的test命令
  • 原文地址:https://www.cnblogs.com/muzhongjiang/p/4538689.html
Copyright © 2011-2022 走看看