jnlp

java提供的一种让你可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个 java应 用程序.好处就不用说了,如果你的java应用程序以jnlp 的方式发布,如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优点了. 

jnlp文件的具体说明: 

应用JNLP部署应用 
(1)编写相关应用,打包成一系列jar; 
(2)根据jnlp文件说明修改相应的jnlp内容,修改相应的url和jar; 
(3)部署jnlp文件和jar到相应的web容器; 
(4)编写访问网页,即可使用该应用〔亦可下载jnlp文件使用jws运行应用〕; 

补充:如果jar需要访问本地文件资源,需要为你的jar文件签名 

  之前做过的一个系统部署如下: 
  1使用ant文件进行打包生成相应的jar文件,及进行文件签名等,生成工程所需的所有架包文件到指定到某个工程目录下,然后指定签证的路径(一般是指定到登陆客户端的project下) 
  2打好包之后,所有的架包都需要在login的页面加入以下代码; 

Java代码   收藏代码
  1. <jnlp codebase="<%=realPath%>">  
  2.   
  3. <information>  
  4. <title>Transfers-inforesRES-参数开通平台</title>  
  5. <vendor>  
  6. ...  
  7. </vendor>  
  8. </information>  
  9.   
  10. <resources>  
  11.  //所有的架包,都绑定了版本号,每次发布都需要给本地工程的jar +1,例如 :paraClient.jar  
  12. <j2se version="1.5+" java-vm-args="-Xms64m -Xmx512m" />  
  13. <jar href="parasigned/paraClient.jar" version="1.1"/>   
  14. <jar href="parasigned/rc_res.jar" version="1.1"/>  
  15. <jar href="parasigned/ant.jar" version="1.0"/>  
  16. <jar href="parasigned/antlr-2.7.6.jar" version="1.0"/>  
  17. <jar href="parasigned/asm-2.2.3.jar" version="1.0"/>  
  18. <jar href="parasigned/aspectjrt.jar" version="1.0"/>  
  19. <jar href="parasigned/aspectjweaver.jar" version="1.0"/>  
  20. <jar href="parasigned/cglib-nodep-2.1_3.jar" version="1.0"/>  
  21. <jar href="parasigned/com.springsource.com.caucho-3.1.6.jar" version="1.0"/>  
  22. <jar href="parasigned/commons-beanutils.jar" version="1.0"/>  
  23. <jar href="parasigned/commons-io-1.3.2.jar" version="1.0"/>  
  24. <jar href="parasigned/commons-lang.jar" version="1.0"/>  
  25. <jar href="parasigned/commons-logging-1.1.1.jar" version="1.0"/>  
  26. <jar href="parasigned/dozer-5.0.jar" version="1.0"/>  
  27. <jar href="parasigned/flexjson.jar" version="1.0"/>  
  28. <jar href="parasigned/forms-1.2.1.jar" version="1.0"/>  
  29. <jar href="parasigned/jakarta-oro-2.0.8.jar" version="1.0"/>  
  30. <jar href="parasigned/jakarta-regexp-1.5.jar" version="1.0"/>  
  31. <jar href="parasigned/jcalendar.jar" version="1.0"/>  
  32. <jar href="parasigned/jdom.jar" version="1.0"/>  
  33. <jar href="parasigned/jide-oss-2.5.3.jar" version="1.0"/>  
  34. <jar href="parasigned/JImage.jar" version="1.0"/>  
  35. <jar href="parasigned/jwf-1.0.1.jar" version="1.0"/>  
  36. <jar href="parasigned/jxl.jar" version="1.0"/>  
  37. <jar href="parasigned/jxls-core-0.9.8.jar" version="1.0"/>  
  38. <jar href="parasigned/jxls-reader-0.9.8.jar" version="1.0"/>  
  39. <jar href="parasigned/log4j-1.2.15.jar" version="1.0"/>  
  40. <jar href="parasigned/looks.jar" version="1.0"/>  
  41. <jar href="parasigned/neethi-2.0.4.jar" version="1.0"/>  
  42. <jar href="parasigned/OpenSwing.jar" version="1.1"/>  
  43. <jar href="parasigned/OpenSwingBeanInfo.jar" version="1.0"/>  
  44. <jar href="parasigned/poi-3.2-FINAL-20081019.jar" version="1.0"/>  
  45. <jar href="parasigned/poi-contrib-3.2-FINAL-20081019.jar" version="1.0"/>  
  46. <jar href="parasigned/poi-scratchpad-3.2-FINAL-20081019.jar" version="1.0"/>  
  47. <jar href="parasigned/simple-json.jar" version="1.0"/>  
  48. <jar href="parasigned/slf4j-api-1.5.0.jar" version="1.0"/>  
  49. <jar href="parasigned/slf4j-log4j12-1.5.0.jar" version="1.0"/>  
  50. <jar href="parasigned/spring.jar" version="1.0"/>  
  51. <jar href="parasigned/swing-layout.jar" version="1.0"/>  
  52. <jar href="parasigned/twaver.jar" version="1.0"/>  
  53. <jar href="parasigned/substance.jar" version="1.0"/>  
  54. <jar href="parasigned/DJNativeSwing.jar" version="1.0"/>  
  55. <jar href="parasigned/DJNativeSwing-SWT.jar" version="1.0"/>  
  56. <jar href="parasigned/jna_WindowUtils.jar" version="1.0"/>  
  57. <jar href="parasigned/jna-3.2.4.jar" version="1.0"/>  
  58. <jar href="parasigned/MozillaInterfaces-1.8.1.3.jar" version="1.0"/>  
  59. <jar href="parasigned/swt-3.6M6-win32-win32-x86.jar" version="1.0"/>  
  60. <jar href="parasigned/dom4j-1.6.1.jar" version="1.0"/>  
  61. <jar href="parasigned/commons-collections-3.1.jar" version="1.0"/>  
  62. </resources>  
  63.   
  64.   
  65. <security>  
  66. <all-permissions />  
  67. </security>  
  68.   
  69. //登陆时候需要认证的参数;  
  70. <application-desc main-class="Launch">  
  71. <argument><%=URL%></argument>  
  72. <argument><%=port%></argument>  
  73. <argument><%=staffcode%></argument>  
  74. <argument><%=passwdMd5%></argument>  
  75. <argument>product</argument>  
  76. <argument><%=SysCode%></argument>  
  77. <argument><%=timestamp%></argument>  
  78. </application-desc>  
  79.   
  80. </jnlp>  



ant 文件: 

Java代码   收藏代码
  1. <?xml version="1.0"?>  
  2. <project name="backend" default="upload">  
  3.     <description>  
  4.             This is the build.xml for ant in the ddz project  
  5.     </description>      
  6.   
  7.         <property environment="env" />  
  8.         <property name="base.dir" value="." />  
  9.         <property name="shared.dir" value="../rcSharedProject" />  
  10.         <property name="project.name" value="backend" />  
  11.         <property name="application.name" value="lobby" />  
  12.           
  13.         <target name="detect.file"   >     
  14.             <echo>正在检查是否存在${base.dir}/build-${user.name}.properties文件....</echo>  
  15.           <condition property="fileIsExists" >     
  16.           <and>     
  17.            <available file="${base.dir}/build-${user.name}.properties"/>   
  18.           </and>     
  19.           </condition>  
  20.         </target>  
  21.         <target name="loadUserProperty" if="fileIsExists" depends="detect.file">     
  22.             <echo>存在${base.dir}/build-${user.name}.properties文件....</echo>  
  23.             <property file="${base.dir}/build-${user.name}.properties"/>  
  24.         </target>  
  25.         <target name="loadDefaultProperty" unless="fileIsExists" depends="loadUserProperty">     
  26.             <echo>不存在${base.dir}/build-${user.name}.properties文件!使用默认TOMCAT配置..</echo>  
  27.             <property file="build.properties"/>  
  28.         </target>  
  29.           
  30.         <target name="init" depends="loadDefaultProperty">  
  31.                 <echo>tomcat.root=${tomcat.root}/</echo>  
  32.   
  33.                 <property name="app.root" value="${tomcat.root}/webapps/${application.name}" />  
  34.                 <property name="cache.root" value="${tomcat.root}/work/Catalina/localhost/${application.name}" />  
  35.                   
  36.                 <property name="base.dir" value="." />  
  37.                 <property name="shared.dir" value="../transSharedProject" />  
  38.                   
  39.                   
  40.                 <property name="global.dir" value="${shared.dir}/global" />  
  41.                 <property name="domains.dir" value="${shared.dir}/domains" />  
  42.                 <property name="servicesInterface.dir" value="${shared.dir}/services" />  
  43.   
  44.   
  45.                 <property name="uis.dir" value="${base.dir}/UIS" />  
  46.       
  47.                 <property name="config.dir" value="${base.dir}/config" />  
  48.       
  49.                 <property name="classes.dir" value="${base.dir}/publish/classes" />  
  50.                 <property name="WebRoot.dir" value="${base.dir}/WebRoot" />  
  51.                 <property name="lib.dir" value="${base.dir}/lib" />  
  52.                   
  53.                 <property name="dist.dir" value="${base.dir}/publish/dist" />  
  54.                 <property name="jarfile" value="${project.name}.jar" />  
  55.       
  56.                 <property name="publish.dir" value="${base.dir}/publish" />  
  57.                   
  58.   
  59.                 <path id="classpath">  
  60.                     <fileset dir="${lib.dir}">  
  61.                         <include name="*.jar" />  
  62.                     </fileset>  
  63.                     <path location="${classes.dir}" />  
  64.                 </path>  
  65.                 <mkdir dir="${classes.dir}" />  
  66.                 <mkdir dir="${dist.dir}" />  
  67.         </target>  
  68.   
  69.   
  70.       
  71.       
  72.     <!-- 数字签名用的密钥信息参数 -->  
  73.      <property name="keystoreName" value="gpdi.inforessystem"/>  
  74.   
  75.      <property name="storepass" value="gpdi.inforessystem"/>  
  76.      <property name="keystore" location="${base.dir}/publish/${keystoreName}"/>  
  77.      <property name="keypass" value="gpdi.inforessystem"/>  
  78.      <property name="keysize" value="1024"/>  
  79.      <property name="alias" value="gpdi.inforessystem"/>  
  80.      <property name="validity" value="3650"/>  
  81.   
  82.   
  83.   
  84.     <target name="compile" depends="init">  
  85.         <copy todir="${dist.dir}">  
  86.                     <fileset dir="${uis.dir}">  
  87.                         <include name="**" />  
  88.                     </fileset>  
  89.                     <fileset dir="${global.dir}">  
  90.                             <include name="**" />  
  91.                     </fileset>  
  92.                     <fileset dir="${domains.dir}">  
  93.                             <include name="**" />  
  94.                     </fileset>  
  95.                     <fileset dir="${servicesInterface.dir}">  
  96.                             <include name="**" />  
  97.                     </fileset>  
  98.         </copy>  
  99.         <javac srcdir="${dist.dir}" encoding="utf-8"  destdir="${classes.dir}" includes="**" debug="on">  
  100.                 <classpath refid="classpath" />  
  101.         </javac>  
  102.         <copy todir="${classes.dir}">  
  103.                 <fileset dir="${uis.dir}">  
  104.                     <include name="**" />  
  105.                 </fileset>  
  106.                 <fileset dir="${config.dir}">  
  107.                     <include name="**" />  
  108.                 </fileset>  
  109.                 <fileset dir="${domains.dir}">  
  110.                     <include name="**" />  
  111.                 </fileset>      
  112.         </copy>  
  113.     </target>  
  114.   
  115.   
  116.       
  117.     <target name="jar" depends="compile">  
  118.         <mkdir dir="${publish.dir}" />  
  119.         <mkdir dir="${publish.dir}/lib" />  
  120.         <mkdir dir="${publish.dir}/signed" />  
  121.         <jar destfile="${publish.dir}/lib/${jarfile}">  
  122.             <fileset dir="${classes.dir}">  
  123.                 <include name="**" />  
  124.             </fileset>  
  125.         </jar>      
  126.         <copy todir="${publish.dir}/lib">  
  127.             <fileset dir="${lib.dir}">  
  128.                         <include name="*.jar" />  
  129.             </fileset>  
  130.         </copy>  
  131.         <copy todir="${publish.dir}">  
  132.             <fileset dir="${base.dir}">  
  133.                         <include name="*.bat" />  
  134.             </fileset>  
  135.         </copy>  
  136.     </target>  
  137.       
  138.     <!-- 创建证书 -->  
  139.      <target name="genericKey">  
  140.       <echo message="genkey..."/>  
  141.       <delete>  
  142.        <fileset dir="${base.dir}/publish">  
  143.            <include name="${keystoreName}"/>  
  144.        </fileset>  
  145.       </delete>  
  146.       <genkey keystore="${keystore}" storepass="${storepass}" alias="${alias}" keypass="${keypass}" keysize="${keysize}"  
  147.         verbose="true" validity="${validity}" dname="CN=GPDI, OU=Infores, O=gpdi.com, C=ZH">  
  148.       </genkey>  
  149.       <echo message="genkey... done"/>  
  150.      </target>  
  151.   
  152.     <!-- 对JAR进行数字签名 -->  
  153.      <target name="signJar" depends="jar, genericKey">  
  154.       <echo message="jarsigner..." />    
  155.          <delete>  
  156.                <fileset dir="${base.dir}/publish/signed">  
  157.                    <include name="**.jar"/>  
  158.                </fileset>  
  159.         </delete>  
  160.         <signjar destDir="${base.dir}/publish/signed"  
  161.             alias="${alias}" keystore="${keystore}"  
  162.             storepass="${storepass}">  
  163.           <path>  
  164.             <fileset dir="${base.dir}/publish/lib" includes="**.jar" />  
  165.           </path>  
  166.           <flattenmapper />  
  167.         </signjar>  
  168.       <echo message="jarsigner... done." />  
  169.      </target>  
  170.       
  171.     <target name="clean-cache"  depends="signJar">  
  172.         <mkdir dir="${cache.root}" />  
  173.         <delete>  
  174.             <fileset dir="${cache.root}">  
  175.                 <include name="**"/>  
  176.             </fileset>  
  177.         </delete>  
  178.     </target>  
  179.       
  180.     <target name="deploy"  depends="clean-cache">  
  181.             <mkdir dir="${app.root}" />  
  182.             <mkdir dir="${app.root}/signed" />  
  183.             <mkdir dir="${app.root}/WEB-INF" />  
  184.             <mkdir dir="${app.root}/WEB-INF/lib" />  
  185.             <mkdir dir="${app.root}/WEB-INF/classes" />  
  186.                   
  187.             <!--<copy todir="${app.root}/">  
  188.                     <fileset dir="${WebRoot.dir}">  
  189.                         <include name="**" />  
  190.                     </fileset>  
  191.             </copy>-->  
  192.           
  193.             <copy todir="${app.root}/signed">  
  194.                     <fileset dir="${base.dir}/publish/signed">  
  195.                         <include name="**.jar" />  
  196.                     </fileset>  
  197.             </copy>  
  198.               
  199.     </target>  
  200.       
  201.     <target name="upload"  depends="clean-cache">  
  202.             <mkdir dir="${app.root}" />  
  203.             <mkdir dir="${app.root}/signed" />  
  204.             <mkdir dir="${app.root}/WEB-INF" />  
  205.             <mkdir dir="${app.root}/WEB-INF/lib" />  
  206.             <mkdir dir="${app.root}/WEB-INF/classes" />  
  207.                   
  208.             <!--<copy todir="${app.root}/">  
  209.                     <fileset dir="${WebRoot.dir}">  
  210.                         <include name="**" />  
  211.                     </fileset>  
  212.             </copy>-->  
  213.           
  214.             <copy todir="${app.root}/signed">  
  215.                 <fileset dir="${base.dir}/publish/signed">  
  216.                         <include name="**.jar" />  
  217.                 </fileset>  
  218.             </copy>  
  219.             <copy todir="${app.root}">  
  220.                     <fileset dir="${base.dir}/publish">  
  221.                         <include name="start.bat" />  
  222.                     </fileset>  
  223.             </copy>  
  224.     </target>  
  225.       
  226.         <!-- 远程部署TOMCAT属性  
  227.     <property name="server.address" value="211.155.23.240" />  
  228.     <property name="server.sshport" value="22" />  
  229.     <property name="server.tomcat.port" value="8080" />  
  230.     <property name="server.tomcat.service" value="Tomcat6" />  
  231.     <property name="server.tomcat.path" value="D:\env\apache-tomcat-6.0.14\webapps" />  
  232.     <property name="server.username" value="gpdi.infores" />        
  233.     <property name="server.password" value="1qaz2wsx" />  
  234.     -->  
  235.     <target name="detect">  
  236.             <condition property="tomcat.running" >  
  237.                 <and>  
  238.                     <socket server="${server.address}" port="${server.tomcat.port}" />  
  239.                 </and>  
  240.             </condition>  
  241.         </target>           
  242.         <target name="tomcat.stop" if="tomcat.running" description="停止TOMCAT" depends="init">  
  243.             <echo> rexec 到${server.address}</echo>     
  244.             <echo message="正在停止TOMCAT..." />   
  245.                   <sshexec   
  246.                     host="${server.address}"   
  247.                     username="${server.username}"   
  248.                     password="${server.password}"    
  249.                     port="${server.sshport}"   
  250.                     trust="true"   
  251.                     command="net stop ${server.tomcat.service}"/>  
  252.                   <waitfor>  
  253.                     <not>  
  254.                         <socket server="${server.address}" port="${server.tomcat.port}" />  
  255.                     </not>  
  256.             </waitfor>   
  257.         </target>    
  258.           
  259.         <target name="tomcat.start"   
  260.                 description="modify application database and sysid"   
  261.                 depends="init">  
  262.              <echo> rexec 到${server.address}</echo>     
  263.              <echo message="正在启动TOMCAT..." />   
  264.              <sshexec   
  265.                             host="${server.address}"   
  266.                             username="${server.username}"   
  267.                             password="${server.password}"    
  268.                             port="${server.sshport}"   
  269.                             trust="true"   
  270.                             command="net start ${server.tomcat.service}"/>  
  271.                 <waitfor>  
  272.                         <and>  
  273.                             <socket server="${server.address}" port="${server.tomcat.port}" />  
  274.                         </and>  
  275.                 </waitfor>           
  276.         </target>   
  277.           
  278.         <!--增量上传: 把所有自己写的代码打包JAR包 -->  
  279.   
  280.         <target name="uploadJarToServer" depends="init">  
  281.              <scp todir="${server.username}:${server.password}@${server.address}:${server.tomcat.path}\${application.name}"   
  282.                    trust="true"  
  283.                    verbose="true"  
  284.                    port="${server.sshport}"   
  285.               >  
  286.                 <fileset dir="${base.dir}/publish/">  
  287.                     <include name="signed" />  
  288.                     <include name="signed/**" />  
  289.                 </fileset>  
  290.               </scp>  
  291.         </target>   
  292.         <!-- 增量上传 -->  
  293.         <target name="增量上传" depends="init,detect, tomcat.stop,uploadJarToServer,tomcat.start"></target>  
  294.   
  295. </project>  



Java代码   收藏代码
  1. 登陆时候的lauch:  
  2.   
  3.   
  4. import java.util.Map;  
  5.   
  6. import javax.swing.JFrame;  
  7. import javax.swing.WindowConstants;  
  8.   
  9. import cn.dcalf.swing.WindowUtils;  
  10. import cn.dcalf.util.ClientLaunchArgs;  
  11.   
  12. import com.gpdi.infores.client.util.MsgDlgFuns;  
  13. import com.gpdi.infores.global.client.GlobalVars;  
  14. import com.gpdi.infores.global.client.MyUIManager;  
  15. import com.gpdi.infores.rc.start.client.LoginFrame;  
  16. import com.gpdi.infores.rc.start.client.MainFrame;  
  17. import com.gpdi.infores.rc.task.OnlineUserSynTask;  
  18.   
  19.   
  20. public class Launch {   
  21.     /** 
  22.      * 启动程序 
  23.      *  
  24.      * @param args 
  25.      */  
  26.     public static void main(String[] args) {  
  27.         Map<String,String> argMap = ClientLaunchArgs.getArgMap(args);  
  28.         if (argMap==null || argMap.get(ClientLaunchArgs.IP)==null){  
  29.             MsgDlgFuns.showMsg("非法的传入参数。");  
  30.             return;  
  31.         }  
  32.           
  33.         try {  
  34.             GlobalVars.setAddress(argMap.get(ClientLaunchArgs.IP));  
  35.             GlobalVars.setPort(argMap.get(ClientLaunchArgs.PORT));  
  36.             GlobalVars.setVersion(argMap.get(ClientLaunchArgs.VERSION));  
  37.             GlobalVars.setProjectId(argMap.get(ClientLaunchArgs.PROJECT_ID));  
  38.               
  39.             GlobalVars.getInstance();             
  40.             MyUIManager.init();  
  41.             OnlineUserSynTask.setStartWork(false);  
  42.   
  43.             String staffcode = argMap.get(ClientLaunchArgs.USER);  
  44.             String password = argMap.get(ClientLaunchArgs.PASSWORD);  
  45.             String timestatmp=argMap.get(ClientLaunchArgs.TIMESTAMP);  
  46.             if (timestatmp==null)  
  47.                 timestatmp="0";  
  48.             String sysCode = argMap.get(ClientLaunchArgs.SYSTEM_CODE);  
  49.               
  50.             if(staffcode!=null && !staffcode.isEmpty()){  
  51.                 boolean result = false;  
  52.                   
  53.                 if(sysCode!=null && !sysCode.isEmpty()){  
  54.                     result = GlobalVars.getInstance().auhenticate(staffcode, password, sysCode , timestatmp);  
  55.                 }else{  
  56.                    result = GlobalVars.getInstance().auhenticate(staffcode, password,null,timestatmp);  
  57.                 }  
  58.                 if(!result){  
  59.                     GlobalVars.getInstance().showErrorDialog("登录验证失败,用户名/密码错误,或者登录超时(30分钟).");  
  60.                     System.exit(0);  
  61.                     return;  
  62.                 }  
  63.                   
  64.                 java.awt.EventQueue.invokeLater(new Runnable() {  
  65.                         public void run() {  
  66.                             //JFrame main = new MainFrame();  
  67.                             JFrame main = MainFrame.getInstance();  
  68.                             String title = GlobalVars.getInstance().buildTitle();  
  69.                             main.setTitle(title);  
  70.                               
  71.                             main.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  
  72.                             main.setExtendedState(JFrame.MAXIMIZED_BOTH);  
  73.                             WindowUtils.center(main);                 
  74.                             main.setVisible(true);  
  75.                         }  
  76.                     });       
  77.             }else{  
  78.                 java.awt.EventQueue.invokeLater(new Runnable() {  
  79.                     public void run() {  
  80.                          JFrame frame = new JFrame();  
  81.                          String title = GlobalVars.getInstance().getConfigValueByName("system.title");  
  82.                           frame.setTitle(title);  
  83.                           frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  
  84.                           LoginFrame panel = new LoginFrame(frame);                        
  85.                           panel.setVisible(true);  
  86.                           try{  
  87.                               panel.requestFocus();  
  88.                           }catch(Exception e){  
  89.                           }  
  90.                     }  
  91.                 });  
  92.             }  
  93.               
  94.         } catch (Exception e) {  
  95.             e.printStackTrace();  
  96.         }  
  97.     }  
  98.   
  99.   
  100. }  



Java代码   收藏代码
  1. 生成的数字签证:version.xml  
  2.   
  3. <jnlp-versions>  
  4.     <resource>  
  5.         <pattern>  
  6.             <name>rcClient.jar</name>  
  7.             <version-id>1.0</version-id>  
  8.         </pattern>  
  9.         <file>rcClient.jar</file>  
  10.     </resource>  
  11.     <resource>  
  12.         <pattern>  
  13.             <name>rc_res.jar</name>  
  14.             <version-id>1.1</version-id>  
  15.         </pattern>  
  16.         <file>rc_res.jar</file>  
  17.     </resource>  
  18.     <resource>  
  19.         <pattern>  
  20.             <name>ant.jar</name>  
  21.             <version-id>1.0</version-id>  
  22.         </pattern>  
  23.         <file>ant.jar</file>      
  24.     </resource>  
  25.     <resource>  
  26.         <pattern>  
  27.             <name>antlr-2.7.6.jar</name>  
  28.             <version-id>1.0</version-id>  
  29.         </pattern>  
  30.         <file>antlr-2.7.6.jar</file>  
  31.     </resource>  
  32.     <resource>  
  33.         <pattern>  
  34.             <name>asm-2.2.3.jar</name>  
  35.             <version-id>1.0</version-id>  
  36.         </pattern>  
  37.         <file>asm-2.2.3.jar</file>  
  38.     </resource>  
  39.     <resource>  
  40.         <pattern>  
  41.             <name>aspectjrt.jar</name>  
  42.             <version-id>1.0</version-id>  
  43.         </pattern>  
  44.         <file>aspectjrt.jar</file>  
  45.     </resource>  
  46.     <resource>  
  47.         <pattern>  
  48.             <name>aspectjweaver.jar</name>  
  49.             <version-id>1.0</version-id>  
  50.         </pattern>  
  51.         <file>aspectjweaver.jar</file>  
  52.     </resource>  
  53.     <resource>  
  54.         <pattern>  
  55.             <name>cglib-nodep-2.1_3.jar</name>  
  56.             <version-id>1.0</version-id>  
  57.         </pattern>  
  58.         <file>cglib-nodep-2.1_3.jar</file>  
  59.     </resource>  
  60.     <resource>  
  61.         <pattern>  
  62.             <name>com.springsource.com.caucho-3.1.6.jar</name>  
  63.             <version-id>1.0</version-id>  
  64.         </pattern>  
  65.         <file>com.springsource.com.caucho-3.1.6.jar</file>  
  66.     </resource>  
  67.     <resource>  
  68.         <pattern>  
  69.             <name>commons-beanutils.jar</name>  
  70.             <version-id>1.0</version-id>  
  71.         </pattern>  
  72.         <file>commons-beanutils.jar</file>  
  73.     </resource>  
  74.     <resource>  
  75.         <pattern>  
  76.             <name>commons-io-1.3.2.jar</name>  
  77.             <version-id>1.0</version-id>  
  78.         </pattern>  
  79.         <file>commons-io-1.3.2.jar</file>  
  80.     </resource>  
  81.     <resource>  
  82.         <pattern>  
  83.             <name>commons-lang.jar</name>  
  84.             <version-id>1.0</version-id>  
  85.         </pattern>  
  86.         <file>commons-lang.jar</file>  
  87.     </resource>  
  88.     <resource>  
  89.         <pattern>  
  90.             <name>commons-logging-1.1.1.jar</name>  
  91.             <version-id>1.0</version-id>  
  92.         </pattern>  
  93.         <file>commons-logging-1.1.1.jar</file>  
  94.     </resource>  
  95.     <resource>  
  96.         <pattern>  
  97.             <name>dozer-5.0.jar</name>  
  98.             <version-id>1.0</version-id>  
  99.         </pattern>  
  100.         <file>dozer-5.0.jar</file>  
  101.     </resource>  
  102.     <resource>  
  103.         <pattern>  
  104.             <name>flexjson.jar</name>  
  105.             <version-id>1.0</version-id>  
  106.         </pattern>  
  107.         <file>flexjson.jar</file>  
  108.     </resource>  
  109.     <resource>  
  110.         <pattern>  
  111.             <name>forms-1.2.1.jar</name>  
  112.             <version-id>1.0</version-id>  
  113.         </pattern>  
  114.         <file>forms-1.2.1.jar</file>  
  115.     </resource>  
  116.     <resource>  
  117.         <pattern>  
  118.             <name>jakarta-oro-2.0.8.jar</name>  
  119.             <version-id>1.0</version-id>  
  120.         </pattern>  
  121.         <file>jakarta-oro-2.0.8.jar</file>  
  122.     </resource>  
  123.     <resource>  
  124.         <pattern>  
  125.             <name>jakarta-regexp-1.5.jar</name>  
  126.             <version-id>1.0</version-id>  
  127.         </pattern>  
  128.         <file>jakarta-regexp-1.5.jar</file>  
  129.     </resource>  
  130.     <resource>  
  131.         <pattern>  
  132.             <name>jcalendar.jar</name>  
  133.             <version-id>1.0</version-id>  
  134.         </pattern>  
  135.         <file>jcalendar.jar</file>  
  136.     </resource>  
  137.     <resource>  
  138.         <pattern>  
  139.             <name>jdom.jar</name>  
  140.             <version-id>1.0</version-id>  
  141.         </pattern>  
  142.         <file>jdom.jar</file>  
  143.     </resource>  
  144.     <resource>  
  145.         <pattern>  
  146.             <name>jide-oss-2.5.3.jar</name>  
  147.             <version-id>1.0</version-id>  
  148.         </pattern>  
  149.         <file>jide-oss-2.5.3.jar</file>  
  150.     </resource>  
  151.     <resource>  
  152.         <pattern>  
  153.             <name>JImage.jar</name>  
  154.             <version-id>1.0</version-id>  
  155.         </pattern>  
  156.         <file>JImage.jar</file>  
  157.     </resource>  
  158.     <resource>  
  159.         <pattern>  
  160.             <name>jwf-1.0.1.jar</name>  
  161.             <version-id>1.0</version-id>  
  162.         </pattern>  
  163.         <file>jwf-1.0.1.jar</file>  
  164.     </resource>  
  165.     <resource>  
  166.         <pattern>  
  167.             <name>jxl.jar</name>  
  168.             <version-id>1.0</version-id>  
  169.         </pattern>  
  170.         <file>jxl.jar</file>  
  171.     </resource>  
  172.     <resource>  
  173.         <pattern>  
  174.             <name>jxls-core-0.9.8.jar</name>  
  175.             <version-id>1.0</version-id>  
  176.         </pattern>  
  177.         <file>jxls-core-0.9.8.jar</file>  
  178.     </resource>  
  179.     <resource>  
  180.         <pattern>  
  181.             <name>jxls-reader-0.9.8.jar</name>  
  182.             <version-id>1.0</version-id>  
  183.         </pattern>  
  184.         <file>jxls-reader-0.9.8.jar</file>  
  185.     </resource>  
  186.     <resource>  
  187.         <pattern>  
  188.             <name>log4j-1.2.15.jar</name>  
  189.             <version-id>1.0</version-id>  
  190.         </pattern>  
  191.         <file>log4j-1.2.15.jar</file>  
  192.     </resource>  
  193.     <resource>  
  194.         <pattern>  
  195.             <name>looks.jar</name>  
  196.             <version-id>1.0</version-id>  
  197.         </pattern>  
  198.         <file>looks.jar</file>  
  199.     </resource>  
  200.     <resource>  
  201.         <pattern>  
  202.             <name>neethi-2.0.4.jar</name>  
  203.             <version-id>1.0</version-id>  
  204.         </pattern>  
  205.         <file>neethi-2.0.4.jar</file>  
  206.     </resource>  
  207.     <resource>  
  208.         <pattern>  
  209.             <name>OpenSwing.jar</name>  
  210.             <version-id>1.1</version-id>  
  211.         </pattern>  
  212.         <file>OpenSwing.jar</file>  
  213.     </resource>  
  214.     <resource>  
  215.         <pattern>  
  216.             <name>OpenSwingBeanInfo.jar</name>  
  217.             <version-id>1.0</version-id>  
  218.         </pattern>  
  219.         <file>OpenSwingBeanInfo.jar</file>  
  220.     </resource>  
  221.     <resource>  
  222.         <pattern>  
  223.             <name>poi-3.2-FINAL-20081019.jar</name>  
  224.             <version-id>1.0</version-id>  
  225.         </pattern>  
  226.         <file>poi-3.2-FINAL-20081019.jar</file>  
  227.     </resource>  
  228.     <resource>  
  229.         <pattern>  
  230.             <name>poi-contrib-3.2-FINAL-20081019.jar</name>  
  231.             <version-id>1.0</version-id>  
  232.         </pattern>  
  233.         <file>poi-contrib-3.2-FINAL-20081019.jar</file>  
  234.     </resource>  
  235.     <resource>  
  236.         <pattern>  
  237.             <name>poi-scratchpad-3.2-FINAL-20081019.jar</name>  
  238.             <version-id>1.0</version-id>  
  239.         </pattern>  
  240.         <file>poi-scratchpad-3.2-FINAL-20081019.jar</file>  
  241.     </resource>  
  242.     <resource>  
  243.         <pattern>  
  244.             <name>simple-json.jar</name>  
  245.             <version-id>1.0</version-id>  
  246.         </pattern>  
  247.         <file>simple-json.jar</file>  
  248.     </resource>  
  249.     <resource>  
  250.         <pattern>  
  251.             <name>slf4j-api-1.5.0.jar</name>  
  252.             <version-id>1.0</version-id>  
  253.         </pattern>  
  254.         <file>slf4j-api-1.5.0.jar</file>  
  255.     </resource>  
  256.     <resource>  
  257.         <pattern>  
  258.             <name>slf4j-log4j12-1.5.0.jar</name>  
  259.             <version-id>1.0</version-id>  
  260.         </pattern>  
  261.         <file>slf4j-log4j12-1.5.0.jar</file>  
  262.     </resource>  
  263.     <resource>  
  264.         <pattern>  
  265.             <name>spring.jar</name>  
  266.             <version-id>1.0</version-id>  
  267.         </pattern>  
  268.         <file>spring.jar</file>  
  269.     </resource>  
  270.     <resource>  
  271.         <pattern>  
  272.             <name>swing-layout.jar</name>  
  273.             <version-id>1.0</version-id>  
  274.         </pattern>  
  275.         <file>swing-layout.jar</file>  
  276.     </resource>  
  277.     <resource>  
  278.         <pattern>  
  279.             <name>twaver.jar</name>  
  280.             <version-id>1.0</version-id>  
  281.         </pattern>  
  282.         <file>twaver.jar</file>  
  283.     </resource>  
  284.     <resource>  
  285.         <pattern>  
  286.             <name>substance.jar</name>  
  287.             <version-id>1.0</version-id>  
  288.         </pattern>  
  289.         <file>substance.jar</file>  
  290.     </resource>  
  291.     <resource>  
  292.         <pattern>  
  293.             <name>DJNativeSwing.jar</name>  
  294.             <version-id>1.0</version-id>  
  295.         </pattern>  
  296.         <file>DJNativeSwing.jar</file>  
  297.     </resource>  
  298.     <resource>  
  299.         <pattern>  
  300.             <name>DJNativeSwing-SWT.jar</name>  
  301.             <version-id>1.0</version-id>  
  302.         </pattern>  
  303.         <file>DJNativeSwing-SWT.jar</file>  
  304.     </resource>  
  305.     <resource>  
  306.         <pattern>  
  307.             <name>jna_WindowUtils.jar</name>  
  308.             <version-id>1.0</version-id>  
  309.         </pattern>  
  310.         <file>jna_WindowUtils.jar</file>  
  311.     </resource>  
  312.     <resource>  
  313.         <pattern>  
  314.             <name>jna-3.2.4.jar</name>  
  315.             <version-id>1.0</version-id>  
  316.         </pattern>  
  317.         <file>jna-3.2.4.jar</file>  
  318.     </resource>  
  319.     <resource>  
  320.         <pattern>  
  321.             <name>MozillaInterfaces-1.8.1.3.jar</name>  
  322.             <version-id>1.0</version-id>  
  323.         </pattern>  
  324.         <file>MozillaInterfaces-1.8.1.3.jar</file>  
  325.     </resource>  
  326.     <resource>  
  327.         <pattern>  
  328.             <name>swt-3.6M6-win32-win32-x86.jar</name>  
  329.             <version-id>1.0</version-id>  
  330.         </pattern>  
  331.         <file>swt-3.6M6-win32-win32-x86.jar</file>  
  332.     </resource>  
  333.     <resource>  
  334.         <pattern>  
  335.             <name>dom4j-1.6.1.jar</name>  
  336.             <version-id>1.0</version-id>  
  337.         </pattern>  
  338.         <file>dom4j-1.6.1.jar</file>  
  339.     </resource>     
  340.     <resource>  
  341.         <pattern>  
  342.             <name>pipeline.jar</name>  
  343.             <version-id>1.0</version-id>  
  344.         </pattern>  
  345.         <file>pipeline.jar</file>  
  346.     </resource>     
  347.     <resource>  
  348.         <pattern>  
  349.             <name>jRegistryKey.jar</name>  
  350.             <version-id>1.0</version-id>  
  351.         </pattern>  
  352.         <file>jRegistryKey.jar</file>  
  353.     </resource>     
  354.     <resource>  
  355.         <pattern>  
  356.             <name>jRegistryKey.dll.jar</name>  
  357.             <version-id>1.0</version-id>  
  358.         </pattern>  
  359.         <file>jRegistryKey.dll.jar</file>  
  360.     </resource>     
  361.     <resource>  
  362.         <pattern>  
  363.             <name>commons-collections-3.1.jar</name>  
  364.             <version-id>1.0</version-id>  
  365.         </pattern>  
  366.         <file>commons-collections-3.1.jar</file>  
  367.     </resource>  
  368. </jnlp-versions>  




以上为一个C/S架构系统的每次发布的流程 
1使用ant文件编译,生成jar 
2 生成签证 
3在登陆客户端保证好与签证中的jary版本一样 
4 给打好的架放入到服务器启动成功即可,登陆客户端 在下载客户端程序认证成功。 

你可能感兴趣的:(nl)