java -cp_java -cp 和 java -jar 的区别

本文详细介绍了Java中的类路径(classpath)和使用java-jar命令执行jar包的原理,包括如何设置classpath,如何处理多个依赖,以及在maven打包时如何指定主类。通过示例展示了当pom.xml和MANIFEST.MF文件中主类配置不一致时,对jar执行的影响。

java -cp

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

java -jar 执行命令时,会用到目录META-INF\MANIFEST.MF文件,在该文件中,有一个叫Main-Class的参数,他说明了 java -jar 命令执行的类。

META-INF\MANIFEST.MF的内容

Manifest-Version: 1.0

Main-Class: test.core.Core

Maven 打包

1)用 maven 导出的包中,如果没有在pom文件中将依赖包打进去,没有依赖包。

打包时指定了主类,可以直接用java -jar xxx.jar。

打包时没有指定主类,可以用java -cp xxx.jar 主类名称(绝对路径)

要引用其他的 jar 包,可以用java -classpath $CLASSPATH:xxx.jar 主类名称(绝对路径)。其中 -classpath 指定需要引入的类。

2)pom.xml 的 build 配置:

org.apache.maven.plugins

maven-compiler-plugin

3.1

1.8

1.8

maven-assembly-plugin

test.core.Core

jar-with-dependencies

make-assemble

package

single

3)下面基于 pom 和 META-INF\MANIFEST.MF 两个文件的配置,进行了三种情况的测试

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中没有主清单属性

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 //执行成功

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 //执行成功

代码下载地址: https://pan.quark.cn/s/a4b39357ea24 在计算机视觉技术中,数据集扮演着训练评估模型的核心角色。Labelme作为一个广受欢迎的开源工具,能够支持用户以交互方式对图像进行标注,而COCO(Common Objects in Context)则是一种被广泛采纳的数据集标准格式,适用于包括物体检测、图像分割在内的多种任务。本文将详细阐述如何将Labelme生成的标注数据转换为COCO数据集的标准格式。 Labelme标注的图像在输出为JSON格式时,会包含以下核心内容: 1. `version`: 指明JSON文件的版本信息。 2. `flags`: 目前未定义或保持为空,预留用于未来的功能扩展。 3. `shapes`: 列表形式存储对象的形状信息,每个形状项包含`label`(对象类别名称),`points`(构成对象边缘的多边形顶点),以及`shape_type`(通常为“polygon”)。 4. `imagePath``imageData`: 提供原始图像的存储路径二进制数据,便于后续图像的还原。 5. `imageHeight``imageWidth`: 明确标注图像的垂直水平尺寸。 COCO数据集的标准格式中定义了三种主要的标注类型: 1. Object instances(目标实例):主要用于执行物体检测任务。 2. Object keypoints(目标上的关键点):适用于人体姿态估计相关应用。 3. Image captions(看图说话):用于生成图像的文本描述。 COCO的JSON结构中包含以下基本组成部分: 1. `images`:记录图像的基本属性,包括`height`(高度)、`...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值