JAVA打包 主要工具:izPack, jsmooth,exe4j
IzPack可以通过定义文件将程序安装步骤编译在JAR包中。用户可以通过双击Jar文件进入安装界面进行程序的安装。
程序安装需要包含步骤:
1. 简单的文件部署.
2.系统数据库的导入,考虑已经安装好的数据库需要空间比较大,所以把纯净的mysql放入安装包,在通过.sql文件导入数据.
3. 进行数据库的连接测试,IzPack可以调用jar包,或者调用本地程序执行一些任务.
4. 可以通过准备的bat文件执行一系列windows操作.
隐藏DOS窗口
@echo off
start javaw -jar HR.jar
@echo off
start /b javaw -jar HR.jar
另外:
两个应用程序都能运行你的程序,并非常相似,但是有一个重要的区别,java通过控制台运行,javaw则不是。 控制台几乎是为纯文本编成的,例如如果你用javaw运行所有你打印的状态不会被打印出来。你打印在程序中的有用信息,错误信息也是一样。 所以,如果你在选择用哪个: 如果是基于纯文本的编成用java。 如果是图形化但随时打印成纯文本用java。 如果你在检查错误,用java。 如果程序是纯粹的图形化的,而且你需要提升速度,用javaw。
Jsmooth:JSmooth是一款免费将JAR包转换为Exe文件的工具。使用方法一般是先将开发的Java程序制作成包含Manifest的JAR包,然后使用JSmooth将做好的JAR包包装成Exe文件,制作后就可以在安装有JRE的Windows机器上执行了。 可以将JAR文件转换成Exe文件, 通过IzPack产生可以安装的JAR后,再通过JSMOOTH转换成EXE, 让没有JVM的人也可以安装.项目运行只需要一个jre就行了,把jre或者jdk里面的jre拷贝一份到项目的文件夹,在.bat批处理文件加上set PATH=%PATH%;jre的目录;项目运行时就直接用这一套jre了
官方简介:
JSmooth is a Java Executable Wrapper that makes a standard Windows executable binary (.exe) from a jar file. It makes java deployment much smoother and user-friendly, as it is able to find a Java VM by itself. When no VM is available, it provides feed-back to the users, and can launch the default web browser to an URL that explains how to download a Java VM.
网址:
http://jsmooth.sourceforge.net/
exe4j:可以打包成各种格式的exe,可以把jar打包进exe,也可以引用一个外部的jar文件,还可以打包成windows服务的程序,并且可以设置最低jre的版本,还可以设定启动画面.
另外的办法
在windows下运行java写的GUI程序
a、用AWT/Swing写的GUI程序
可以把程序打成Jar包,直接双击就可以运行
b、用SWT/JFace编的程序
首先,将你的程序打成Jar包;
新建一个lib文件夹,将swt的支持包拷到lib文件夹下(包括你程序打成的Jar包);
在lib文件夹的同级目录下,创建批处理文件“startup.bat”,“startup.bat”的内容如下:
用脚本所写的程序就是为了动态加载指定文件夹下的所有Jar包
==================================
@echo off
setlocal enabledelayedexpansion
echo %java_home%
set jre="%java_home%\jdk\bin\java"
set tempclass="%java_home%\lib\dt.jar";"%java_home%\lib\tools.jar";.
for %%i in (lib\*.*) do (
set tempclass=!tempclass!;%%i;
)
start "Exp" %jre% -classpath !tempclass! com.packagename.mainclassname
endlocal
===================================
运行startup.bat就Ok了
linux下可以编写相应的shall脚本,代码如下:
=============================================
#!/bin/bash
tmpclasspath=.
for i in `ls lib/*.jar`
do
tmpclasspath=$tmpclasspath:./lib/$i
done
$JAVA_HOME/bin/java -classpath $tempclasspath com.packagename.mainclassname
==============================================
配置 META-INF\MANIFEST.MF 更好,不会有黑窗口
诸如:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_06-b05 (Sun Microsystems Inc.)
Main-Class: latexDraw.ui.LaTeXDraw
Class-Path: lib/net.sourceforge.jiu.jar lib/jlibeps.jar ./ help/