Exception in thread "main" java.io.IOException: invalid manifest format at java.util.jar.Manifest.read(Manifest.java:193) at java.util.jar.Manifest.<init>(Manifest.java:52) at java.util.jar.JarFile.getManifestFromReference(JarFile.java:158) at java.util.jar.JarFile.getManifest(JarFile.java:145)我用你的方法出了一个这样的异常
解压jar中的那个文件,然后用文本编辑器打开,在中间加上Class-path: jarname1 jarname2 等等 然后再打一次,记得这次点next到 generate the manifest file步骤时候,选择use existing manifest from workspace,选择你刚才编辑好的那个manifest.mf文件,再点finish
或者手动压缩成zip,后缀改成.jar,再写个MANIFEST.MF文件放到\META-INF目录下
具体写法可以参考ide生成的,或者找个别人打好的jar包看看。最常用的:Manifest-Version: 1.0
Class-path: 依赖的jar啥的
Main-Class: main函数入口类
然后再打成jar包。只要客户端装了jdk,用户只要双击这个jar包就可以自动运行了。
注意,参数中有一个e,ClearSVN类的main方法就是你的jar的入口。
打完包以后,这样:
jara -jar myJar.jar
就可以运行程序了。
谢谢大家
这样可以直接运行现在就是不知道那错了 一点 就是 main 什么的找不到这就是需求 大家帮帮忙
在你的输出目录下运行这个命令即可,注意参数别传错了。
用fat打包插件,很好用的
若选择jar,然后选择文件名,点next,进入jar packaging options ,
点next,进入jar manifest specification,
此时默认是generate the manifest file,点击finish会在jar里自动生成一个MANIFEST.MF文件
MANIFEST.MF文件形状如:
Manifest-Version: 1.0
Class-path: 依赖的jar啥的 例如:lib/mail1.4.jar
Main-Class: main函数入口类 注意,此类必须有public static void main(String[] args)
且若此类在某包内,例如cn.com包内的Test类,则入口类应为Main-Class:cn.com.Test
在本jar同级目录下建lib文件夹,将Class-path:中用到的jar拷贝进来,若打包为runnable就不用这样了最后写个xx.bat文件,
@echo off
javaw -jar xx.jar
你的那个命令要在cmd 下运行吗?
能具体说点行吗?
我是Eclipse 8
还是包main 找不到
很简单的问题嘛,居然盖到20楼了。
自己动手一试就啥都明白了。
比如,你的输出目录是yourProject/bin
cmd下进入这个目录。
jar -cvfe jarName.jar yourpackage.name.MainClass *.*
一个命令就OK了。
Sealed: true
Main-Class: uimain.mainlogin
我的MANIFEST.MF 文件的内容对吗?
java -jar jarName.jar
试试就知道对不对了。
如果用了其他的包,要加参数的。
file-->export
现在就是这个文件MANIFEST.MF我不知道怎么加进JAR中或者说 我打完的jar里面有MANIFEST.MF这个文件就是我上面说的
Class-Path: 我想在里面加我的包 但是我不知道怎么加
就是它已经是个jar了 我在它里面加东西怎么加呢?
at java.util.jar.Manifest.read(Manifest.java:193)
at java.util.jar.Manifest.<init>(Manifest.java:52)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:158)
at java.util.jar.JarFile.getManifest(JarFile.java:145)我用你的方法出了一个这样的异常
然后再打一次,记得这次点next到
generate the manifest file步骤时候,选择use existing manifest from workspace,选择你刚才编辑好的那个manifest.mf文件,再点finish
-m参数就是了。
Class-Path: ./lib/AbsoluteLayout.jar./lib/commons-codec-1.4.jar
它放在 Main-Class 前面还是后面呀
放在main-class的上一行,
给你看看我的吧Manifest-Version: 1.0
Class-Path: lib/antlr-2.7.7.jar lib/classes12.jar lib/common-jdbc-driver.jar
Sealed: true
Main-Class: src.ETL
但是运行不起来
总报 找不到main我的开发环境是jdk1.6 我的环境变量是1.5 的
我想问问有没有问题呀?
敲命令 jar -cvf 123.jar 【文件夹名或者class名】
但是新的问题出现了
就是我只能用jdk 1.6 的现在就是我想把jdk 1.6 也打包进去想问问有什么软件 还是什么方法的
用bat 也见简单哦,直接打就是了,百度一下吧 !