• java -jar 和 java -cp 区别


    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/12022527.html

    Project Directory

    SRC

    MainTest.java

    1 package org.fool.test;
    2 
    3 public class MainTest {
    4     public static void main(String[] args) {
    5         System.out.println("Hello Jar");
    6     }
    7 }

    Maven Dependency

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0"
     3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     5     <modelVersion>4.0.0</modelVersion>
     6 
     7     <groupId>org.fool.test</groupId>
     8     <artifactId>hello-jar</artifactId>
     9     <version>1.0-SNAPSHOT</version>
    10 
    11     <build>
    12         <plugins>
    13             <plugin>
    14                 <groupId>org.apache.maven.plugins</groupId>
    15                 <artifactId>maven-compiler-plugin</artifactId>
    16                 <version>3.8.1</version>
    17                 <configuration>
    18                     <source>1.8</source>
    19                     <target>1.8</target>
    20                 </configuration>
    21             </plugin>
    22 
    23             <plugin>
    24                 <groupId>org.apache.maven.plugins</groupId>
    25                 <artifactId>maven-assembly-plugin</artifactId>
    26                 <version>3.2.0</version>
    27                 <configuration>
    28                     <appendAssemblyId>false</appendAssemblyId>
    29                     <descriptorRefs>
    30                         <descriptorRef>jar-with-dependencies</descriptorRef>
    31                     </descriptorRefs>
    32                     <archive>
    33                         <manifest>
    34                             <mainClass>org.fool.test.MainTest</mainClass>
    35                         </manifest>
    36                     </archive>
    37                 </configuration>
    38                 <executions>
    39                     <execution>
    40                         <id>make-assembly</id>
    41                         <phase>package</phase>
    42                         <goals>
    43                             <goal>single</goal>
    44                         </goals>
    45                     </execution>
    46                 </executions>
    47             </plugin>
    48         </plugins>
    49     </build>
    50 
    51 </project>

    Note:

    maven-assembly-plugin 中指定了 mainClass

    clean package 后分别执行

    java -jar

    1 $ java -jar hello-jar-1.0-SNAPSHOT.jar
    2 Hello Jar

    java -cp

    1 $ java -cp hello-jar-1.0-SNAPSHOT.jar org.fool.test.MainTest
    2 Hello Jar

    maven-assembly-plugin 中不指定 mainClass

    clean package 后再次分别执行

    java -jar

    1 $ java -jar hello-jar-1.0-SNAPSHOT.jar
    2 no main manifest attribute, in hello-jar-1.0-SNAPSHOT.jar

    java -cp

    1 $ java -cp hello-jar-1.0-SNAPSHOT.jar org.fool.test.MainTest
    2 Hello Jar

    Reference

    https://www.jianshu.com/p/eabfb61e072a

    https://blog.csdn.net/yulei_qq/article/details/82423683

  • 相关阅读:
    如何提升自身实力
    python实现远程控制Linux
    python对象之间的关系
    python类的属性和方法
    简单阐述后端测试
    python操作数据库
    AppCrawler
    RobotFramework作业
    接口自动化测试
    CSS3 Backgrounds相关介绍
  • 原文地址:https://www.cnblogs.com/agilestyle/p/12022527.html
Copyright © 2020-2023  润新知