如何打包java程序? http://dev.csdn.net/develop/article/39/39501.shtm 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 倘若说看到标题后,以为jb真的提供了一种把java应用程序打包成exe文件的主流方法的话,你会失望的,下面的一个小技巧只是一个技巧而已。 这个是borland不公开的使用技巧,能够通过jbuilder来制作exe文件来启动java文件。jbuilder并不支持本地编译机制。但是有一个隐藏的技巧可以让你从可执行文件来启动java程序,可以出现或者不出现console窗口。想做到这些,需要jbuilder的bin目录下的这些文件: jbuilder.exe jbuilderw.exe (可选) jbuilder.config jdk.config javalauncher.dll “jbuilder.exe”是一个通用的可执行外壳文件,用以启动java程序,”jbuilderw.exe“好像是javaw.exe一样,它把”jbuilder.exe”包装起来,但是运行时候不显示那个console的窗口。使用这些文件的关键是文件名。“jbuilder.exe”查找一个文件叫”jbuilder.config”的配置文件,里面包含了运行java程序的必须信息。同样的”jbuilderw.exe”查找”jbuilder.exe”来启动不带console窗口的java程序。如果把jbuilder.exe重命名为”foo.exe”,那”foo.exe”将去寻找”foo.config”配置文件,同样”jbuilderw.exe”被重命名为”foow.exe”,它会去寻找”foo.exe”文件。 说到这里,聪明的读者应该猜到怎样利用jbuilder.exe来启动应用程序了。只要把jbuilder.exe,jbuilerw.exe,jbuilder.config改名成相应的文件名,在jbuilder.config里面指定主类和类路径,就能够通过执行jbuilder.exe(或者被改名后的exe文件)来启动java应用程序了。下面是用本机为例。 borland jbuilder 5被安装在e:\jbuilder5\目录下,在e:\jbuilder5\bin\下建立一个temp目录,然后把jbuilder.exe,jbuilder.config,javalauncher.dll,jdk.config四个文件拷贝到:\jbuilder5\bin\temp\目录下,然后在这个目录下建立一个hello目录,在这个目录下生成一个hello.java文件,即e:\jbuilder5\bin\temp\hello\hello.java文件,file://hello.java/package hello; public class hello{ public static void main(string s[]){ system.out.println("hello, exe file!"); } } 然后打开jbuilder.config文件,作相应的修改: 在jbuilder.config里面找到下面两行 # start jbuilder using the its main class mainclass com.borland.jbuilder.jbuilder 修改为 # start jbuilder using the its main class mainclass hello.hello addpath e:/jbuilder5/bin/temp/ addpath命令是把目录加入类路径中,这个命令和其它config里面可以识别的命令可以在jbuilder/bin目录下的config_readme.txt里面找到详细说明。 然后将jdk.config里面的javapath修改成相对的路径,例如原来是 javapath ../jdk1.3/bin/java 修改成 javapath ../../jdk1.3/bin/java 最后 将jbuilder.exe,jbuilder.config修改成所需要的文件名,例如foo.exe和foo.config文件 。 现在执行foo.exe文件 至此,通过修改jbuilder来使用exe文件启动自己的java应用程序已经完成了。 但是好玩的地方并不在这个地方,下面的小技巧可能更有趣,将jar文件打包进入exe文件! 假设利用上面的文件,生成hello.jar包,执行过程. jar cvf hello.jar hello\*.class 将类文件打包成exe文件 然后将jar包附加到jbuilder.exe后面去. copy /b ..\jbuilder.exe+hello.jar foo.exe 将jar文件转化成exe文件 在foo.config(jbuilder.config)文件里面把前面加入的类路径去掉,并加入下面的路径: addpath e:/jbuilder5/bin/temp/foo.exe 然后执行. 看到了么?一个含jar包的exe文件被执行了! 如果没用Jbuilder用j2dk呢? 怎样打包?请指教,谢谢。 jar命令具体怎么做 输入 jar 他会提示的 进入你的项目根目录jar -cvf xxx.jar *这样就全部打在这个包里面了 jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ... 选项: -c 创建新的存档 -t 列出存档内容的列表 -x 展开存档中的命名的(或所有的〕文件 -u 更新已存在的存档 -v 生成详细输出到标准输出上 -f 指定存档文件名 -m 包含来自标明文件的标明信息 -0 只存储方式;未用zip压缩格式 -M 不产生所有项的清单(manifest〕文件 -i 为指定的jar文件产生索引信息 -C 改变到指定的目录,并且包含下列文件: 如果一个文件名是一个目录,它将被递归处理。 清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。JAR打包命令:jar cvf jspSmartUpload.jar com up!利用jar命令:比如你的字节码文件为 e盘根目录下有文件Student.class可以打包成Student.jar可以使用如下命令:E:\jar -cvf Student.jar Student.class如果你想将e盘下其他的class文件也打入包中,可以在后面依次写出字节码文件,或者用 E:\jar -cvf A.jar *.class,则可以将所有的字节码文件打入包中 用ant的jar标签啊,编译/打包/javadoc都可以写在build.xml里只要在目录里打ant.bat,就可以了.而且ant是开源的,很多open source的项目都用ant 用jar cvmf aaa.mf lala.jar com/hoho/pack/这里假设的包为com.hoho.packmain函数所在class为hello.class此时aaa.mf文件内容为:Manifest-Version: 1.0 Created-By: 1.4.2 (Sun Microsystems Inc.) Main-Class: hello//注意这里最后留一个空行 还是我给你推荐一个软件吧绝对适合你.installanywhere,用以下你就知道好处了 我的经验:首先进入你要打包的文件夹。建立一个Manifest.mf文件(这个文件的写法上面有)。jar classes.jar Manifest.mf *.*我是成功了。你试试 jar cvf name.jar *.* java笔试题,急急急急!!!! 个人对于Java程序执行过程的理解,希望大家指点指点!!! java 应用程序 怎么用到数据库? 请问大家Class.forName(classname)和ClassLoader.loadClass(classname)都是动态加载类,它们有何区别? jdk5.0的问题! 一个死锁难题!能者入! 关于文件删除重建! 请问!!! <21学通java>这本书如何? 带参数类的引用,新人求指教 在Applet使用JSObject调用jacascript出现stack overflow 大家来鄙视我吧 倾尽家财求助
jbuilderw.exe (可选)
jbuilder.config
jdk.config
javalauncher.dll “jbuilder.exe”是一个通用的可执行外壳文件,用以启动java程序,”jbuilderw.exe“好像是javaw.exe一样,它把”jbuilder.exe”包装起来,但是运行时候不显示那个console的窗口。使用这些文件的关键是文件名。“jbuilder.exe”查找一个文件叫”jbuilder.config”的配置文件,里面包含了运行java程序的必须信息。同样的”jbuilderw.exe”查找”jbuilder.exe”来启动不带console窗口的java程序。如果把jbuilder.exe重命名为”foo.exe”,那”foo.exe”将去寻找”foo.config”配置文件,同样”jbuilderw.exe”被重命名为”foow.exe”,它会去寻找”foo.exe”文件。 说到这里,聪明的读者应该猜到怎样利用jbuilder.exe来启动应用程序了。只要把jbuilder.exe,jbuilerw.exe,jbuilder.config改名成相应的文件名,在jbuilder.config里面指定主类和类路径,就能够通过执行jbuilder.exe(或者被改名后的exe文件)来启动java应用程序了。下面是用本机为例。 borland jbuilder 5被安装在e:\jbuilder5\目录下,在e:\jbuilder5\bin\下建立一个temp目录,然后把jbuilder.exe,jbuilder.config,javalauncher.dll,jdk.config四个文件拷贝到:\jbuilder5\bin\temp\目录下,然后在这个目录下建立一个hello目录,在这个目录下生成一个hello.java文件,即e:\jbuilder5\bin\temp\hello\hello.java文件,file://hello.java/package hello; public class hello{
public static void main(string s[]){
system.out.println("hello, exe file!");
}
} 然后打开jbuilder.config文件,作相应的修改:
在jbuilder.config里面找到下面两行 # start jbuilder using the its main class
mainclass com.borland.jbuilder.jbuilder 修改为 # start jbuilder using the its main class
mainclass hello.hello
addpath e:/jbuilder5/bin/temp/ addpath命令是把目录加入类路径中,这个命令和其它config里面可以识别的命令可以在jbuilder/bin目录下的config_readme.txt里面找到详细说明。 然后将jdk.config里面的javapath修改成相对的路径,例如原来是 javapath ../jdk1.3/bin/java 修改成 javapath ../../jdk1.3/bin/java 最后 将jbuilder.exe,jbuilder.config修改成所需要的文件名,例如foo.exe和foo.config文件 。 现在执行foo.exe文件 至此,通过修改jbuilder来使用exe文件启动自己的java应用程序已经完成了。 但是好玩的地方并不在这个地方,下面的小技巧可能更有趣,将jar文件打包进入exe文件! 假设利用上面的文件,生成hello.jar包,执行过程. jar cvf hello.jar hello\*.class 将类文件打包成exe文件 然后将jar包附加到jbuilder.exe后面去. copy /b ..\jbuilder.exe+hello.jar foo.exe 将jar文件转化成exe文件 在foo.config(jbuilder.config)文件里面把前面加入的类路径去掉,并加入下面的路径: addpath e:/jbuilder5/bin/temp/foo.exe 然后执行.
看到了么?一个含jar包的exe文件被执行了!
怎样打包?
请指教,谢谢。
这样就全部打在这个包里面了
选项:
-c 创建新的存档
-t 列出存档内容的列表
-x 展开存档中的命名的(或所有的〕文件
-u 更新已存在的存档
-v 生成详细输出到标准输出上
-f 指定存档文件名
-m 包含来自标明文件的标明信息
-0 只存储方式;未用zip压缩格式
-M 不产生所有项的清单(manifest〕文件
-i 为指定的jar文件产生索引信息
-C 改变到指定的目录,并且包含下列文件:
如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。JAR打包命令:jar cvf jspSmartUpload.jar com
利用jar命令:
比如你的字节码文件为 e盘根目录下有文件Student.class
可以打包成Student.jar
可以使用如下命令:
E:\jar -cvf Student.jar Student.class如果你想将e盘下其他的class文件也打入包中,可以在后面依次写出字节码文件,
或者用 E:\jar -cvf A.jar *.class,则可以将所有的字节码文件打入包中
这里假设的包为com.hoho.pack
main函数所在class为hello.class
此时aaa.mf文件内容为:
Manifest-Version: 1.0
Created-By: 1.4.2 (Sun Microsystems Inc.)
Main-Class: hello
//注意这里最后留一个空行
首先进入你要打包的文件夹。建立一个Manifest.mf文件(这个文件的写法上面有)。
jar classes.jar Manifest.mf *.*我是成功了。你试试