java class文件生成jar包
cd进入要打成jar包的class文件所有文件夹目录
jar cvf [生成jar的名称.jar] [列出class文件] //若有多个,以空隔隔开
如:
一。操作零散的单个或几个class文件
jar cvf ibstool.jar com/cn/ibs/TurnD.class com/cn/ibs/TurnB.class
二。把一个文件夹下面的所有class文件打成jar包
jar cvf ibstool.jar * 回车
生成可执行jar包:
编译的class文件中必须有main入口函数的类方能生成可执行jar包,如:
public static void main(String[] args)
生成的方法步骤:
方法一:
1。用上面的方法把class与相应的结构目录打成jar包
2。解压这个jar包到当前目录
3。编辑META-INF/MANIFEST.MF,给jar包指定程序入口main函数,内容为:
Manifest-Version: 1.0
Created-By: 1.5.0_06 (Sun Microsystems Inc.)
Main-Class: MutiThread (回车)
(注意回车与空格,这个文件的内容排版必须标准)
4。再用winzip把这些文件压缩成jar格式包,或者压成zip包,再改后缀名为jar也可。
方法二(推荐):
2. 打成可执行的jar包
cmd操作窗体中进入class文件的根目录,之所以说根目录,是因为下面其下面还可以有很多文件包(夹);
在此目录准备好一个manifest.mf文件,其内容为:
Manifest-Version: 1.0
Created-By: 1.5.0_06 (Sun Microsystems Inc.)
Main-Class: MainEntry
main-class为指定所有类的main方法所在的类名.
最后用命令: jar cvfm jarname.jar manifest.mf *
3.测试可执行jar包.
用命令:java -jar jarname.jar
4.为可执行jar包制作bat文件.
例如 :
@echo off
rem
rem Set BQ_IBS_HOME before running this script.
rem
if not "%BQ_IBS_HOME%" == "" goto CONT0
set BQ_IBS_HOME=c:\ibs
:CONT0
@echo on
java -DBQ_IBS_HOME=%BQ_IBS_HOME% -jar jarname.jar
:END
补充:
关于 MANIFEST.MF 写法.
例如我们打包的jar为 Test.jar
Manifest-Version: 1.0
Main-Class: windows.VideoWindow
Class-Path: lib\org.eclipse.swt_3.3.0.v3346.jar lib\org.eclipse.swt.win32.win32.x86_3.3.0.v3346.jar
上面为打包为jar中的包说明文件. 下面这个报错一直出现.
could not find main class. Program will exit
这个错误提示其实不是没有发现main class. 而是jar如果有错误执行不了,就会出现这个错误. 打包完成后, 要先运行 cmd -> java -jar
your.jar 确认没有问题即可执行jar. 使用-jar参数后, 系统的Classpath 变量不再起作用. 虚拟机将去MANIFEST.MF中的Class-Path 下找相
关的包.
然后才能成功的从: windows.VideoWindow 的main方法进入. 否则没有相关连接包,则会提示找不到main class. 而大家可能还迷糊的找不到北
. 明明有main class吗.
如果这个写的不对. 则就会一直报错.
看看上面这个Class-Path: 后面的写法. 空格分开. 绝对不能有分号.切记.
最后必须有换行. 这个也是要注意的. 否则依然提示没有mainclass.
不要因为这个小事情耽误了时间. 其中 lib/ 表示这个jar必须在打包Test.jar所在目录的一个lib子目录中.
运行jar需要命令: java -jar Test.jar
双击也可以, 则使用 javaw 打开.
关于java -classpath a.jar;b.jar; class test.Test 执行时. a.jar;b.jar; 后面都必须有分号. 否则报错. 不要指望不写classpath让系统
自己找. 这不是在eclipse里面.必须写上你要使用的类. 否则总会提示您编译出错.
可以用的上的有:
1. Main-Class 指定程序的入口,这样可以直接用java -jar xxx.jar来运行程序。
2. Class-Path 指定jar包的依赖关系,class loader会依据这个路径来搜索class。
我平时用mf文件一般说来都是让jar成为可以直接运行这一目的。虽然目的这么简单,但是每次打包还是很容易出现各种各样的问题让人头痛。
mf总是没有被应用,或者是出错了。
首先给出一个简单而标准的例子:
Manifest-Version: 1.0
Main-Class: ui.JFrameMain
Class-Path: jtds-1.2.jar c3p0-0.9.1.2.jar
esri_mo20.jar esri_mo20res.jar jsde83_sdk.jar
解释一下:
Manifest-Version mf文件版本号,这行照抄
Main-Class 包含main函数的类,程序的入口
Class-Path 用到的一些包
分析一下要点:
要点1:每行的“:”(冒号)用来分隔键值对。冒号后边一定要跟一个空格!!!
也就是说务必写为:
Main-Class:(空格)YouClassName
Class-Path:(空格)Class1.Jar
否则JBuilder会报("Manifest.mf": Error reading manifest: java.io.IOException: invalid header field
)这样的错。不再IDE帮助下做的JAR会发现MF没有起到应有的作用。顺便说一下以前我看到JBuilder报另一个个错大概说是什么换行符不对,好
像也是由于这个问题引发的。原先总以为是windows里边的回车是由回车,换行2个字符构成而造成的。现在看来好像不是这样,是因为少了冒
号后边那个空格。
要点2:Class-Path里边的内容用空格分隔而不是逗号或者分号。(唉。。。我总是下意识的用分号)
也就是说务必写成:
Class-Path:(空格)Class1.jar(空格)Class2.jar(空格)Class3.Jar
要点3:有的文章说MF文件每行不能超过七十多的字符,我的经验是如果在JBuilder里编辑MF超过了也无妨,一般我是尽量一行写完。续行挺麻
烦又要以空格开头什么的。我也经常直接用winRar打开jar然后直接编辑里边的mf文件,这是个好方法,很直接了当,缺点就是如果改坏了也不
会报错,只是MF有的部分失效了,好像运行时也会说"错误的MF文件版本"。
介绍几个技巧:
技巧1:使用winRar打开jar,双击MF文件,就可以编辑了,编辑完了Ctrl+S保存。特方便。也可以在外边写好一个Manifest.mf,然后直接拖入
覆盖以前的。
技巧2:写一个run.bat来运行你的jar。run.bat大体内容如下:
java -jar yours.jar
pause
后边加一个pause就可以让你看到具体哪里出错了,一般来说问题如果出在MF上,那么往往就是哪个包,哪个类没有找到的NoClassDef这种异常
参考:
http://blog.163.com/jimjun2003/blog/static/86730756200871210281370/
分享到:
相关推荐
java中生成exe文件 jar打包成可执行文件 内附使用文档
一个封装工具,可以将做好的JAR文件封装成可执行的EXE文件,同时可以为生成的可执行文件加上运行JVM和ico图标等
Eclipse 项目 打包成 可执行jar 文件
将eclipse或者idea打包后的.jar包小工具类文件再打包成exe可执行文件。
通过jar生成可执行的jar文件 将您要打包成jar的class文件放到D盘的temp目录下(也可以自定义) 在cmd命令行中键入如下指令: 1. 进入temp目录:cd tmep 2. 输入打包jar命令:jar -cvfe test.jar JFrameDemo3 . (点...
exe4j 将jar文件打包成exe可执行文件,内有exe4j的安装包和使用教程
比exe4j还要简单的打包软件。可以将生成的jar包直接打包成可执行的exe文件。操作简单,内含操作手册,只需要安装一下,根据操作手册进行操作就ok
非maven项目中的ANT打包可执行JAR包脚本,包括配置文件、第三方jar打包
1、exe4j打包工具主要把jar包打成exe文件; 2、nsis打包工具; 3、打包示例程序。
将一个java程序或项目打包成jar与exe文件 将一个java程序或项目打包成jar与exe文件 将一个java程序或项目打包成jar与exe文件
帮你把jar打成可执行文件的程序,使用本工具直接把java文件打包成可执行文件
jar打包成exe,转载的,自己以后留着用
java代码,打包成jar文件以及转换为exe可执行文件
我们开发的Java程序,运行Jar总是要先在客户的Windows机器上单独安装Jre,然后在...此资源是一个教程,将Jar文件打包成Exe可执行文件,然后再将Jre运行环境和Exe文件一起打包成安装文件,这样,部署运行就非常方便了。
把java打包为可执行文件jar方法
使用javamail发送邮件,使用springboot打包jar,可java -jar mail.jar执行测试
Launch4j是一个开源的安装程序,将您的jar文件打包成操作系统的本地可执行文件,支持Windows, MacOS,Linux和Solaris。对于JRE,您可以嵌入在安装文件中,也可以在安装时提示用户下载正确的JRE版本。Launch4j更加吸引...
java打包成jar有多种方法,有jar命令,有eclipse有相关操作,有制作完成的jar文件就是可执行的,文件有详细操作步骤
JAR文件包,及jar仓储详解+实例,JAR文件包,及jar仓储详解+实例.JAR文件包,及jar仓储详解+实例
ksoap是java中实现webservice的一种方式 ipPhysicalAdress是一个已经打好包的可执行jar文件 可以方便的查询ip地址的物理地址