论坛首页 Java版

Java个人桌面程序发布的一些总结。

浏览 2578 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-03-06 关键字: 桌面 Swing Ant 发布

    项目结束,在发布时遇到一些问题,经过一段时间的努力,现已解决,在此对项目发布作下总结。

    发布要求如下,由于项目是一个Java桌面程序。要求生成2个基于windows用户的安装包(其中一个内嵌)JRE和一个基于unix用户的zip包,其中包括可运行的jar文件。而且由于版权问题必须先对代码进行混淆处理。

    OK,进入正题。假设我们的项目路径为F:\Project,制作好的安装包分别放在F:\unix_release和F:\windows_release文件夹。

    其下的文件组织为:

                                      /src(java文件)

                                      /lib(第三方jar包)

                                      /resources(程序所需要的资源文件,包括数据库,图片等等)

    首先,我们先完成unix系统zip包的生成。从http://ant.apache.org/下载ANT,在F:\Project下建立build.xml文件。编辑build.xml文件,首先对一些路径进行赋值。

xml 代码
  1. <property name="src.dir" value="src" />  
  2. <property name="resources.dir" value="resources" />  
  3. <property name="lib.dir" value="lib" />  
  4. <property name="dist.dir" value="F:\unix_release" />  
  5. <property name="classes.dir" value="${dist.dir}/classes" />  
  6. <property name="src.dir" value="src" />  

 

    接着将resources和lib文件夹拷贝到目标文件夹中。

xml 代码
  1. <target name="copydirs">  
  2.     <copy todir="${dist.dir}/lib">  
  3.         <fileset dir="${lib.dir}" />  
  4.     copy>  
  5.     <copy todir="${dist.dir}/resources">  
  6.         <fileset dir="${resources.dir}" />  
  7.     copy>  
  8. target>  

 

    编译src源文件。

xml 代码
  1. <path id="dist.classpath">  
  2.     <fileset dir="${lib.dir}">  
  3.         <include name="**/*.jar" />  
  4.     fileset>  
  5. path>  
  6.   
  7. <target name="compile">  
  8.     <javac srcdir="${src.dir}" destdir="${classes.dir}"  
  9.         classpathref="dist.classpath" source="1.5" />  
  10. target>  

 

    生成jar包。

xml 代码
  1. <target name="jar>     
  2.     <fileset dir="${lib.dir}" id="lib.dist.fileset">     
  3.         <include name="**/*.jar"/>     
  4.     fileset>     
  5.          
  6.     <pathconvert pathsep=" " property="dist.classpath" refid="lib.dist.fileset>     
  7.         <map from="${lib.dir} to="./lib" />     
  8.         <jar destfile="release_orginal.jar" basedir="${classes.dir}">     
  9.              <manifest>  
  10.                   
  11.                 <attribute name="Main-Class" value="project.Main" />     
  12.                 <attribute name="Class-Path" value=". ${dist.classpath}" />     
  13.             manifest>    
  14.         jar>     
  15.     pathconvert>     
  16. target>    

 

    下面需要对生成的jar包进行代码混淆。这里用到得是yGuard Bytecode Obfuscator and Shrinker,这是一个免费工具,你可以http://www.yworks.com/en/products_yguard_about.htm下载。具体代码这里就不说明了,上面有详细的文档。

    经过上述操作,就已经生成了混淆过后的可运行jar包。

    关于windows EXE可执行文件和setup文件的生成。需要以下3个工具:Launch4j,NSIS,MakeNSIS。其中Lanunch4j用来包裹jar包生成EXE文件,同时可以内嵌jre,并且提供1个ANT Task脚本。NSIS是一个制作安装工具的工具,需要你根据需要撰写一个nsi脚本文件,然后用MakeNSIS执行ANT Task脚本运行。

    发布JAVA个人桌面程序的一般步骤如上。

   
最后更新时间:2007-03-06
有点小问题,我是中午才编写好的,为什么系统显示我是13小时前发布的?
   
0 请登录后投票
最后更新时间:2007-03-07
等有时间试试
   
0 请登录后投票
最后更新时间:2007-03-07
ant 脚本啊
   
0 请登录后投票
最后更新时间:2007-03-07
jvincent 写道
ant 脚本啊

实际的ANT脚本很好编写,主体已经在正文中了,下面只需要调用相应的Task就可以了。
   
0 请登录后投票
最后更新时间:2007-03-07
先藏下,需要的时候用
   
0 请登录后投票
论坛首页 Java版

跳转论坛:
JavaEye推荐