自己写的MANIFEST文件:Main-Class有效,但是Class-Path无效

密码测试 2009-03-25 10:36:40
打JAR包的时候,自己写了个MANIFEST.MF,里面定义了Main-Class和Class-Path两个key/value对.
但是在打好的包里面的manifest.mf文件中却只包含了Main-Class而没有包含Class-Path.
打包的时候也没有报错.
...全文
1702 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChDw 2009-03-26
  • 打赏
  • 举报
回复 1
你那个做法实际上是让Java不理会了最后一行,你写那行并不重要,所以没有什么关系
密码测试 2009-03-26
  • 打赏
  • 举报
回复
今天又测试了一下,确实,最后一行会被忽略,所以最后加个回车行是对的。
ChDw 2009-03-25
  • 打赏
  • 举报
回复
MANIFEST.MF 的确是必须以一个空白的回车行结束的,所以在Class-Path这一行你还要加多几个回车才行的。这个是一个比较烦人的设定
密码测试 2009-03-25
  • 打赏
  • 举报
回复
我自己写的MANIFEST.MF内容如下:
Manifest-Version: 1.0
Main-Class: test.poi.MergedCellsTest
Class-Path: poi.jar
生成的MANIFEST.MF如下:
Manifest-Version: 1.0
Created-By: 1.5.0_14 (Sun Microsystems Inc.)
Main-Class: test.poi.MergedCellsTest


发现Class-Path没有生成,后来我修改了MANIFEST.MF的内容如下:
Main-Class: test.poi.MergedCellsTest
Class-Path: poi.jar
Manifest-Version: 1.0
生成的MANIFEST.MF如下:
Manifest-Version: 1.0
Class-Path: poi.jar
Created-By: 1.5.0_14 (Sun Microsystems Inc.)
Main-Class: test.poi.MergedCellsTest


看来1.5.0_14版本的JDK和平常使用的不一样啊。晕死!在网上查了一下,说自己写的MANIFEST最后要空两行,
测试了一下,这个版本是没有成功过。


orangemike 2009-03-25
  • 打赏
  • 举报
回复
我记得有个要求是Class-Path: 冒号后面要有个空格再写路径.
密码测试 2009-03-25
  • 打赏
  • 举报
回复
我不知道是版本的问题还是其他的问题(我用的是1.5.0_14),反正回车行结束我是没有测试成功过,而我成功的文件中并没有使用回车行,我只是把Class-Path提前,不放在最后一行,就成功了,而且,测试中发现,如果Main-Class在最后一行,也会丢失。所以,我干脆把
Manifest-Version: 1.0
作为MANIFEST.MF的最后一行,这样就成功了,根本不需要空行。
Java Agent是Arthas使用的技术,是Skywalking使用的技术,是一份十分重要的技术。 课程的稀缺性在此之前,市面上并没有针对Java Agent进行系统介绍的课程。 通过搜索引擎查找,会发现与Java Agent相关的内容大多是个人知识总结分享的内容。这些内容有如下特点:内容质量不一详略程度不一学习难度千差万别总体上来说,学习者很难有一个整体认知、系统学习的过程。 课程的设计目标 在构思课程内容时,本课程带有以下目标:课程学习梯度:从简单到复杂,让学习者有一个循序渐进的理解过程。构造完整、统一的知识体系:不是零散的知识点堆砌,而是有一个统一的贯穿始终的知识框架。具有可操作性的代码示例,不只是讲概念,更注意于实践。课程内容安排 本课程通过四章内容对Java Agent相关知识进行讲解:第一章,介绍Agent Jar的三个组成部分:Manifest、Agent ClassClassFileTransformer。第二章,介绍Agent Jar的两种启动方式:从命令行启动和使用Attach机制启动。第三章,介绍如何利用Instrumentation API来实现Agent Jar的功能。第四章,Java Agent的应用与技巧。 通过本课程的学习,让同学们更好地建立起一个完整的知识体系:  讲师介绍我叫刘森,南京师范大学研究生毕业,2015年获得信息系统项目管理师(高级),2014年获得系统集成项目管理工程师(中级)。 目前,我的课程都是围绕着“Java字节码”技术展开: 《Java Agent基础篇》是在一个运行JVM当中提供修改字节码的机会《Java ASM系列》(免费课程)是一个操作字节码的类库《Java 8 ClassFile》专注于字节码的理论知识,入选为“51CTO数字化人才证书项目认证课程” 因此,我对字节码技术有较为深入的研究和理解,大家想学习字节码的技术可以找我:字节码技术找刘森,轻松学习又省心~~~ 

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧