声明:所有文章只作为学习笔记用,转载非原创
java -jar 原文链接:https://blog.csdn.net/fly910905/article/details/81668199
java -jar myClass.jar
执行该命令时,会用到目录META-INF\MANIFEST.MF文件,
在该文件中,有一个叫Main-Class的参数,它说明了java -jar命令执行的类
java -jar *.jar param1 param2
运行jar包,会自动到 jar 包中查询mainfest中定义的启动类并运行
param1,param2 为main方法的参数可不填
java -cp
java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,
window上分号“;”
linux上分号“:”
java -cp .;myClass.jar packname.mainclassname
表达式支持通配符,例如:
java -cp .;c:\classes01\myClass.jar;c:\classes02*.jar packname.mainclassname
java -cp lib/*;etc/ com.Start param1 param2
将lib下的所有jar文件以及etc下的所有配置文件添加到 classpath 中
并在classpath 中寻找 com.Start类(main方法类)并运行
param1,param2 为main方法的参数可不填
注意:jar 文件引入classpath,通配符不能写成 .jar, 只能使用 * 或 123
注意:配置文件引入classpath,只能写到目录 /, 不能添加 *
要运行Jar文件时最好加入MANIFEST.MF文件, 它的作用是指定入口类, 并且指定依赖包的路径, 如果不加这个文件, 则在运行Jar包的时候必须输入Main类,还要指定classpath.
java com.dddd.dddd.Main -classpath .jar;*.jar,这样做挺 不方便的, 有了MANIFEST文件就可直接运行了, java -jar ****.jar
实例:
Manifest-Version: 1.0
Main-Class: com.hybj.lobby.LobbyMain
Class-Path: ../lib/commons-dbcp2-2.1.1.jar
../lib/commons-logging-1.2.jar
../lib/commons-pool2-2.2.jar
../lib/fastjson-1.1.41.jar
../lib/jedis-2.7.2.jar
../lib/jedispool.jar
../lib/log4j-1.2.17.jar
../lib/mybatis-3.4.1.jar
../lib/mysql-connector-java-5.1.33-bin.jar
../lib/netty-all-4.0.29.Final.jar
../lib/slf4j-api-1.7.13.jar
../lib/slf4j-log4j12-1.7.13.jar
../lib/spring-aop-4.3.4.RELEASE.jar
../lib/spring-beans-4.3.4.RELEASE.jar
../lib/spring-context-4.3.4.RELEASE.jar
../lib/spring-core-4.3.4.RELEASE.jar
../lib/spring-expression-4.3.4.RELEASE.jar
Main-Class:入口类
Class-Path:依赖包
它的格式要求比较严格, 不能有丁点错误
首先,第一行:
Manifest-Version:[空格]1.0[空格]
第二行:
Main-Class:[空格]com.skymr.TestMain[空格]
第三行以下:
Class-Path:[空格]../lib/commons-dbcp2-2.1.1.jar[空格]
[空格]../lib/commons-logging-1.2.jar[空格]
Class-Path这一行必须接入一个jar包,不能直接就换行
若还有其他Jar包,依此类推.
最后一行为空行,什么都不加,但必须有.
网友评论