介绍java -cp java -jar的区别
java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;” |
java -cp & java jar格式
java -cp和-classpath一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;”
格式:java -cp .;myClass.jar packname.mainclassname
表达式支持通配符,例如:
java -cp .;c:\classes01\myClass.jar;c:\classes02\*.jar packname.mainclassname java -jar myClass.jar
执行该命令时,会用到目录META-INF\MANIFEST.MF文件,在该文件中,有一个叫Main-Class的参数,它说明了java -jar命令执行的类。
用maven导出的包中,如果没有在pom文件中将依赖包打进去,是没有依赖包。
1.打包时指定了主类,可以直接用java -jar xxx.jar。
2.打包是没有指定主类,可以用java -cp xxx.jar 主类名称(绝对路径)。
3.要引用其他的jar包,可以用java -classpath $CLASSPATH:xxxx.jar 主类名称(绝对路径)。其中 -classpath 指定需要引入的类。
下面基于pom和META-INF\MANIFEST.MF两个文件的配置,进行了三种情况的测试:
pom.xml的build配置:
<build> <!--<finalName>test-1.0-SNAPSHOT</finalName>--> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>test.core.Core</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <!--下面是为了使用 mvn package命令,如果不加则使用mvn assembly--> <executions> <execution> <id>make-assemble</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
META-INF\MANIFEST.MF的内容:
Manifest-Version: 1.0 Main-Class: test.core.Core
1.pom中build指定mainClass 但是 META-INF\MANIFEST.MF文件中没有指定Main-Class: test.core.Core
java -jar test-jar-with-dependencies.jar //执行成功 java -cp test-jar-with-dependencies.jar test.core.Core //执行失败,提示jar中没有主清单属性
2.pom中build没有指定mainClass 但是 META-INF\MANIFEST.MF文件中指定了Main-Class: test.core.Core
java -jar test-jar-with-dependencies.jar //执行失败,提示jar中没有主清单属性 java -cp test-jar-with-dependencies.jar test.core.Core //执行成功
3.pom中build指定mainClass && META-INF\MANIFEST.MF文件中增加了Main-Class: test.core.Core
java -cp test-jar-with-dependencies.jar test.core.Core //执行成功 java -jar test-jar-with-dependencies.jar //执行成功
介绍java -cp java -jar的区别相关推荐
- java -cp 和 java -jar 的区别
目录 java -cp java -jar maven 打包 java -cp java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库.jar 包之类,需要全路径 ...
- java -cp 与 java -Djava.ext.dirs的区别与坑
大家在linux环境下使用命令行执行java程序时,经常要使用到大量外部的jar包或class文件,一般我们有哪些方式可以用呢? -classpath,命令格式:# java -classpath & ...
- java -jar 和 java -cp用法
java -jar java -jar myClass.jar 执行该命令时,会用到目录META-INF\MANIFEST.MF文件, 在该文件中,有一个叫Main-Class的参数,它说明了java ...
- java注解的jar包_Java 注解 Annotation
目录: 从 JDK5 开始,Java 增加了对元数据(MetaData)的支持,也就是 Annotation.Annotation 其实就是代码里面的特殊标记,这些标记可以在编译.类加载.运行时被读取 ...
- java classpath 和 jar 简介
目录 classpath jar包 小结 classpath 在Java中,我们经常听到classpath这个东西.网上有很多关于"如何设置classpath"的文章,但大部分设置 ...
- java -cp命令使用
java -cp命令使用 Mac(Linux)下格式 java -cp .:你的jar包路径 主类的全限定名称 举例 java -cp .:myClass.jar packname.mainclass ...
- WIN10 下 “java -cp“ 命令解析
背景 最近在在项目中遇到了一个类加载的问题,几经周折没有找到合适的解决方式,只能怪自己学艺不精.没办法只好重拾曾今丢掉的 java 知识,尝试从源头开始分析问题. 环境 Win 10 企业版 java ...
- java打包成jar|执行jar包中的main方法
java打包成jar jar -cvf [jar包的名字] [需要打包的文件] 执行jar包中的main方法 java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 ...
- java -cp详解(ChatGPT生成)
java -cp命令用于指定Java程序运行时所需的classpath路径,它的基本语法如下: java -cp path/to/class/files MainClass 其中,path/to/cl ...
最新文章
- 设计模式笔记(1)---开篇(文章索引)
- Spring使用支付宝扫码支付
- [你必须知道的.NET]第二十七回:interface到底继承于object吗?
- 一秒点击屏幕次数_手机屏幕刷新率那点事儿!
- [windows phone 7 ]查看已安装程序GUID
- MySQL执行外部sql脚本文件的命令( source命令执行sql )
- 湖人签阿泰是双赢之举 防罗伊打压火箭是两大关键
- App Transport Security has blocked a cleartext
- 极简静态 Web 服务器
- Python 网页爬虫
- 大学的c语言编译器,有多少大学还在用Turbo C做编译器
- Linux下安装MySQL、安装注意事项以及安装问题解决等(以腾讯云服务为主)
- php zend debugger_PHPStorm 与 Zend Debugger
- Apple 开发者论坛新功能体验
- 磁盘一把锁一个感叹号_Win10系统中如何解决磁盘图标上出现感叹号的情况
- UEFI HOB 学习
- 目标检测入门实战:贪吃蛇小游戏
- 【福利帖】7日玩转ESP32
- Python爬虫入门第一课:如何解析网页
- Altium Designer基础知识
热门文章
- 带你少走弯路:五篇文章学完吴恩达机器学习
- 论文发得好,在这所985高校超市买东西能打折…
- 28本实体书包邮免费送!年前替我领回家!
- Linux之复制、移动文件及目录命令
- ida pro学习笔记2022.3.19
- Linux控制删除深度!除find ./ -maxdepth 1 -name *.c | xargs rm -rf
- 博士如何高效率阅读文献?有哪些技巧可以借鉴?
- 使用Python+OpenCV+dlib为人脸生成口罩
- 链表问题14——在单链表种删除指定值的节点
- 关于socket的一些探究