jnlp

36732 ワード

JAvaは、ブラウザを通じてjavaアプリケーションを直接実行できる方法を提供しています.これにより、Webページの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のページに以下のコードを追加する必要があります.

<jnlp codebase="<%=realPath%>">

<information>
<title>Transfers-inforesRES-      </title>
<vendor>
...
</vendor>
</information>

<resources>
 //     ,       ,             jar +1,   :paraClient.jar
<j2se version="1.5+" java-vm-args="-Xms64m -Xmx512m" />
<jar href="parasigned/paraClient.jar" version="1.1"/> 
<jar href="parasigned/rc_res.jar" version="1.1"/>
<jar href="parasigned/ant.jar" version="1.0"/>
<jar href="parasigned/antlr-2.7.6.jar" version="1.0"/>
<jar href="parasigned/asm-2.2.3.jar" version="1.0"/>
<jar href="parasigned/aspectjrt.jar" version="1.0"/>
<jar href="parasigned/aspectjweaver.jar" version="1.0"/>
<jar href="parasigned/cglib-nodep-2.1_3.jar" version="1.0"/>
<jar href="parasigned/com.springsource.com.caucho-3.1.6.jar" version="1.0"/>
<jar href="parasigned/commons-beanutils.jar" version="1.0"/>
<jar href="parasigned/commons-io-1.3.2.jar" version="1.0"/>
<jar href="parasigned/commons-lang.jar" version="1.0"/>
<jar href="parasigned/commons-logging-1.1.1.jar" version="1.0"/>
<jar href="parasigned/dozer-5.0.jar" version="1.0"/>
<jar href="parasigned/flexjson.jar" version="1.0"/>
<jar href="parasigned/forms-1.2.1.jar" version="1.0"/>
<jar href="parasigned/jakarta-oro-2.0.8.jar" version="1.0"/>
<jar href="parasigned/jakarta-regexp-1.5.jar" version="1.0"/>
<jar href="parasigned/jcalendar.jar" version="1.0"/>
<jar href="parasigned/jdom.jar" version="1.0"/>
<jar href="parasigned/jide-oss-2.5.3.jar" version="1.0"/>
<jar href="parasigned/JImage.jar" version="1.0"/>
<jar href="parasigned/jwf-1.0.1.jar" version="1.0"/>
<jar href="parasigned/jxl.jar" version="1.0"/>
<jar href="parasigned/jxls-core-0.9.8.jar" version="1.0"/>
<jar href="parasigned/jxls-reader-0.9.8.jar" version="1.0"/>
<jar href="parasigned/log4j-1.2.15.jar" version="1.0"/>
<jar href="parasigned/looks.jar" version="1.0"/>
<jar href="parasigned/neethi-2.0.4.jar" version="1.0"/>
<jar href="parasigned/OpenSwing.jar" version="1.1"/>
<jar href="parasigned/OpenSwingBeanInfo.jar" version="1.0"/>
<jar href="parasigned/poi-3.2-FINAL-20081019.jar" version="1.0"/>
<jar href="parasigned/poi-contrib-3.2-FINAL-20081019.jar" version="1.0"/>
<jar href="parasigned/poi-scratchpad-3.2-FINAL-20081019.jar" version="1.0"/>
<jar href="parasigned/simple-json.jar" version="1.0"/>
<jar href="parasigned/slf4j-api-1.5.0.jar" version="1.0"/>
<jar href="parasigned/slf4j-log4j12-1.5.0.jar" version="1.0"/>
<jar href="parasigned/spring.jar" version="1.0"/>
<jar href="parasigned/swing-layout.jar" version="1.0"/>
<jar href="parasigned/twaver.jar" version="1.0"/>
<jar href="parasigned/substance.jar" version="1.0"/>
<jar href="parasigned/DJNativeSwing.jar" version="1.0"/>
<jar href="parasigned/DJNativeSwing-SWT.jar" version="1.0"/>
<jar href="parasigned/jna_WindowUtils.jar" version="1.0"/>
<jar href="parasigned/jna-3.2.4.jar" version="1.0"/>
<jar href="parasigned/MozillaInterfaces-1.8.1.3.jar" version="1.0"/>
<jar href="parasigned/swt-3.6M6-win32-win32-x86.jar" version="1.0"/>
<jar href="parasigned/dom4j-1.6.1.jar" version="1.0"/>
<jar href="parasigned/commons-collections-3.1.jar" version="1.0"/>
</resources>


<security>
<all-permissions />
</security>

//           ;
<application-desc main-class="Launch">
<argument><%=URL%></argument>
<argument><%=port%></argument>
<argument><%=staffcode%></argument>
<argument><%=passwdMd5%></argument>
<argument>product</argument>
<argument><%=SysCode%></argument>
<argument><%=timestamp%></argument>
</application-desc>

</jnlp>


antファイル:

<?xml version="1.0"?>
<project name="backend" default="upload">
	<description>
            This is the build.xml for ant in the ddz project
    </description>	

		<property environment="env" />
		<property name="base.dir" value="." />
		<property name="shared.dir" value="../rcSharedProject" />
		<property name="project.name" value="backend" />
		<property name="application.name" value="lobby" />
		
		<target name="detect.file"   >   
			<echo>        ${base.dir}/build-${user.name}.properties  ....</echo>
		  <condition property="fileIsExists" >   
		  <and>   
		   <available file="${base.dir}/build-${user.name}.properties"/> 
		  </and>   
		  </condition>
		</target>
		<target name="loadUserProperty" if="fileIsExists" depends="detect.file">   
			<echo>  ${base.dir}/build-${user.name}.properties  ....</echo>
			<property file="${base.dir}/build-${user.name}.properties"/>
		</target>
		<target name="loadDefaultProperty" unless="fileIsExists" depends="loadUserProperty">   
			<echo>   ${base.dir}/build-${user.name}.properties  !    TOMCAT  ..</echo>
			<property file="build.properties"/>
		</target>
		
		<target name="init" depends="loadDefaultProperty">
			    <echo>tomcat.root=${tomcat.root}/</echo>

				<property name="app.root" value="${tomcat.root}/webapps/${application.name}" />
				<property name="cache.root" value="${tomcat.root}/work/Catalina/localhost/${application.name}" />
				
				<property name="base.dir" value="." />
				<property name="shared.dir" value="../transSharedProject" />
				
				
				<property name="global.dir" value="${shared.dir}/global" />
				<property name="domains.dir" value="${shared.dir}/domains" />
				<property name="servicesInterface.dir" value="${shared.dir}/services" />


				<property name="uis.dir" value="${base.dir}/UIS" />
	
				<property name="config.dir" value="${base.dir}/config" />
	
				<property name="classes.dir" value="${base.dir}/publish/classes" />
				<property name="WebRoot.dir" value="${base.dir}/WebRoot" />
				<property name="lib.dir" value="${base.dir}/lib" />
				
				<property name="dist.dir" value="${base.dir}/publish/dist" />
				<property name="jarfile" value="${project.name}.jar" />
	
				<property name="publish.dir" value="${base.dir}/publish" />
				

				<path id="classpath">
					<fileset dir="${lib.dir}">
						<include name="*.jar" />
					</fileset>
					<path location="${classes.dir}" />
				</path>
				<mkdir dir="${classes.dir}" />
				<mkdir dir="${dist.dir}" />
		</target>


	
	
	<!--              -->
	 <property name="keystoreName" value="gpdi.inforessystem"/>

	 <property name="storepass" value="gpdi.inforessystem"/>
	 <property name="keystore" location="${base.dir}/publish/${keystoreName}"/>
	 <property name="keypass" value="gpdi.inforessystem"/>
	 <property name="keysize" value="1024"/>
	 <property name="alias" value="gpdi.inforessystem"/>
	 <property name="validity" value="3650"/>



	<target name="compile" depends="init">
		<copy todir="${dist.dir}">
					<fileset dir="${uis.dir}">
						<include name="**" />
					</fileset>
					<fileset dir="${global.dir}">
							<include name="**" />
					</fileset>
					<fileset dir="${domains.dir}">
							<include name="**" />
					</fileset>
					<fileset dir="${servicesInterface.dir}">
							<include name="**" />
					</fileset>
		</copy>
		<javac srcdir="${dist.dir}" encoding="utf-8"  destdir="${classes.dir}" includes="**" debug="on">
				<classpath refid="classpath" />
		</javac>
		<copy todir="${classes.dir}">
				<fileset dir="${uis.dir}">
					<include name="**" />
				</fileset>
				<fileset dir="${config.dir}">
					<include name="**" />
				</fileset>
				<fileset dir="${domains.dir}">
					<include name="**" />
				</fileset>	
		</copy>
	</target>


	
	<target name="jar" depends="compile">
		<mkdir dir="${publish.dir}" />
		<mkdir dir="${publish.dir}/lib" />
		<mkdir dir="${publish.dir}/signed" />
		<jar destfile="${publish.dir}/lib/${jarfile}">
			<fileset dir="${classes.dir}">
				<include name="**" />
			</fileset>
		</jar>	
		<copy todir="${publish.dir}/lib">
			<fileset dir="${lib.dir}">
						<include name="*.jar" />
			</fileset>
		</copy>
		<copy todir="${publish.dir}">
			<fileset dir="${base.dir}">
						<include name="*.bat" />
			</fileset>
		</copy>
	</target>
	
	<!--      -->
	 <target name="genericKey">
	  <echo message="genkey..."/>
	  <delete>
	   <fileset dir="${base.dir}/publish">
	       <include name="${keystoreName}"/>
	   </fileset>
	  </delete>
	  <genkey keystore="${keystore}" storepass="${storepass}" alias="${alias}" keypass="${keypass}" keysize="${keysize}"
	    verbose="true" validity="${validity}" dname="CN=GPDI, OU=Infores, O=gpdi.com, C=ZH">
	  </genkey>
	  <echo message="genkey... done"/>
	 </target>

	<!--  JAR       -->
	 <target name="signJar" depends="jar, genericKey">
	  <echo message="jarsigner..." />	 
	 	 <delete>
	 		   <fileset dir="${base.dir}/publish/signed">
	 		       <include name="**.jar"/>
	 		   </fileset>
	 	</delete>
	 	<signjar destDir="${base.dir}/publish/signed"
	 	    alias="${alias}" keystore="${keystore}"
	 	    storepass="${storepass}">
	 	  <path>
	 	    <fileset dir="${base.dir}/publish/lib" includes="**.jar" />
	 	  </path>
	 	  <flattenmapper />
	 	</signjar>
	  <echo message="jarsigner... done." />
	 </target>
	
	<target name="clean-cache"  depends="signJar">
		<mkdir dir="${cache.root}" />
		<delete>
			<fileset dir="${cache.root}">
				<include name="**"/>
			</fileset>
		</delete>
	</target>
	
	<target name="deploy"  depends="clean-cache">
			<mkdir dir="${app.root}" />
			<mkdir dir="${app.root}/signed" />
			<mkdir dir="${app.root}/WEB-INF" />
			<mkdir dir="${app.root}/WEB-INF/lib" />
			<mkdir dir="${app.root}/WEB-INF/classes" />
				
			<!--<copy todir="${app.root}/">
					<fileset dir="${WebRoot.dir}">
						<include name="**" />
					</fileset>
			</copy>-->
		
			<copy todir="${app.root}/signed">
					<fileset dir="${base.dir}/publish/signed">
						<include name="**.jar" />
					</fileset>
			</copy>
			
	</target>
	
	<target name="upload"  depends="clean-cache">
			<mkdir dir="${app.root}" />
			<mkdir dir="${app.root}/signed" />
			<mkdir dir="${app.root}/WEB-INF" />
			<mkdir dir="${app.root}/WEB-INF/lib" />
			<mkdir dir="${app.root}/WEB-INF/classes" />
				
			<!--<copy todir="${app.root}/">
					<fileset dir="${WebRoot.dir}">
						<include name="**" />
					</fileset>
			</copy>-->
		
			<copy todir="${app.root}/signed">
				<fileset dir="${base.dir}/publish/signed">
						<include name="**.jar" />
				</fileset>
			</copy>
			<copy todir="${app.root}">
					<fileset dir="${base.dir}/publish">
						<include name="start.bat" />
					</fileset>
			</copy>
	</target>
	
		<!--     TOMCAT  
	<property name="server.address" value="211.155.23.240" />
	<property name="server.sshport" value="22" />
	<property name="server.tomcat.port" value="8080" />
	<property name="server.tomcat.service" value="Tomcat6" />
	<property name="server.tomcat.path" value="D:\env\apache-tomcat-6.0.14\webapps" />
	<property name="server.username" value="gpdi.infores" />		
	<property name="server.password" value="1qaz2wsx" />
	-->
	<target name="detect">
			<condition property="tomcat.running" >
				<and>
					<socket server="${server.address}" port="${server.tomcat.port}" />
				</and>
			</condition>
		</target>			
		<target name="tomcat.stop" if="tomcat.running" description="  TOMCAT" depends="init">
		    <echo> rexec  ${server.address}</echo>   
			<echo message="    TOMCAT..." /> 
				  <sshexec 
				  	host="${server.address}" 
				  	username="${server.username}" 
				  	password="${server.password}"  
				  	port="${server.sshport}" 
				  	trust="true" 
				  	command="net stop ${server.tomcat.service}"/>
				  <waitfor>
					<not>
						<socket server="${server.address}" port="${server.tomcat.port}" />
					</not>
			</waitfor> 
		</target>  
		
		<target name="tomcat.start" 
				description="modify application database and sysid" 
				depends="init">
		     <echo> rexec  ${server.address}</echo>   
			 <echo message="    TOMCAT..." /> 
			 <sshexec 
						  	host="${server.address}" 
						  	username="${server.username}" 
						  	password="${server.password}"  
						  	port="${server.sshport}" 
						  	trust="true" 
						  	command="net start ${server.tomcat.service}"/>
				<waitfor>
						<and>
					   		<socket server="${server.address}" port="${server.tomcat.port}" />
					 	</and>
				</waitfor> 	     
		</target> 
		
		<!--    :            JAR  -->

		<target name="uploadJarToServer" depends="init">
			 <scp todir="${server.username}:${server.password}@${server.address}:${server.tomcat.path}\${application.name}" 
			       trust="true"
			  	   verbose="true"
			  	   port="${server.sshport}" 
			  >
			  	<fileset dir="${base.dir}/publish/">
					<include name="signed" />
					<include name="signed/**" />
				</fileset>
			  </scp>
		</target> 
		<!--      -->
		<target name="    " depends="init,detect, tomcat.stop,uploadJarToServer,tomcat.start"></target>

</project>


     lauch:


import java.util.Map;

import javax.swing.JFrame;
import javax.swing.WindowConstants;

import cn.dcalf.swing.WindowUtils;
import cn.dcalf.util.ClientLaunchArgs;

import com.gpdi.infores.client.util.MsgDlgFuns;
import com.gpdi.infores.global.client.GlobalVars;
import com.gpdi.infores.global.client.MyUIManager;
import com.gpdi.infores.rc.start.client.LoginFrame;
import com.gpdi.infores.rc.start.client.MainFrame;
import com.gpdi.infores.rc.task.OnlineUserSynTask;


public class Launch { 
	/**
	 *     
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		Map<String,String> argMap = ClientLaunchArgs.getArgMap(args);
		if (argMap==null || argMap.get(ClientLaunchArgs.IP)==null){
			MsgDlgFuns.showMsg("       。");
			return;
		}
		
		try {
			GlobalVars.setAddress(argMap.get(ClientLaunchArgs.IP));
			GlobalVars.setPort(argMap.get(ClientLaunchArgs.PORT));
			GlobalVars.setVersion(argMap.get(ClientLaunchArgs.VERSION));
			GlobalVars.setProjectId(argMap.get(ClientLaunchArgs.PROJECT_ID));
			
			GlobalVars.getInstance();			
			MyUIManager.init();
			OnlineUserSynTask.setStartWork(false);

			String staffcode = argMap.get(ClientLaunchArgs.USER);
			String password = argMap.get(ClientLaunchArgs.PASSWORD);
			String timestatmp=argMap.get(ClientLaunchArgs.TIMESTAMP);
			if (timestatmp==null)
				timestatmp="0";
			String sysCode = argMap.get(ClientLaunchArgs.SYSTEM_CODE);
			
			if(staffcode!=null && !staffcode.isEmpty()){
				boolean result = false;
				
				if(sysCode!=null && !sysCode.isEmpty()){
					result = GlobalVars.getInstance().auhenticate(staffcode, password, sysCode , timestatmp);
				}else{
				   result = GlobalVars.getInstance().auhenticate(staffcode, password,null,timestatmp);
				}
				if(!result){
					GlobalVars.getInstance().showErrorDialog("      ,   /    ,      (30  ).");
					System.exit(0);
					return;
				}
				
				java.awt.EventQueue.invokeLater(new Runnable() {
			            public void run() {
			            	//JFrame main = new MainFrame();
			            	JFrame main = MainFrame.getInstance();
			            	String title = GlobalVars.getInstance().buildTitle();
			              	main.setTitle(title);
			                
			            	main.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
			            	main.setExtendedState(JFrame.MAXIMIZED_BOTH);
			            	WindowUtils.center(main);           	
			                main.setVisible(true);
			            }
			        });		
			}else{
		        java.awt.EventQueue.invokeLater(new Runnable() {
		            public void run() {
		            	 JFrame frame = new JFrame();
		            	 String title = GlobalVars.getInstance().getConfigValueByName("system.title");
		                  frame.setTitle(title);
		                  frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		                  LoginFrame panel = new LoginFrame(frame);		                 
		                  panel.setVisible(true);
		                  try{
		                	  panel.requestFocus();
		                  }catch(Exception e){
		                  }
		            }
		        });
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


}

       :version.xml

<jnlp-versions>
	<resource>
		<pattern>
			<name>rcClient.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>rcClient.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>rc_res.jar</name>
			<version-id>1.1</version-id>
		</pattern>
		<file>rc_res.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>ant.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>ant.jar</file>	
	</resource>
	<resource>
		<pattern>
			<name>antlr-2.7.6.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>antlr-2.7.6.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>asm-2.2.3.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>asm-2.2.3.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>aspectjrt.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>aspectjrt.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>aspectjweaver.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>aspectjweaver.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>cglib-nodep-2.1_3.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>cglib-nodep-2.1_3.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>com.springsource.com.caucho-3.1.6.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>com.springsource.com.caucho-3.1.6.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>commons-beanutils.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>commons-beanutils.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>commons-io-1.3.2.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>commons-io-1.3.2.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>commons-lang.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>commons-lang.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>commons-logging-1.1.1.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>commons-logging-1.1.1.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>dozer-5.0.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>dozer-5.0.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>flexjson.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>flexjson.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>forms-1.2.1.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>forms-1.2.1.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>jakarta-oro-2.0.8.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jakarta-oro-2.0.8.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>jakarta-regexp-1.5.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jakarta-regexp-1.5.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>jcalendar.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jcalendar.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>jdom.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jdom.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>jide-oss-2.5.3.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jide-oss-2.5.3.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>JImage.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>JImage.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>jwf-1.0.1.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jwf-1.0.1.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>jxl.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jxl.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>jxls-core-0.9.8.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jxls-core-0.9.8.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>jxls-reader-0.9.8.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jxls-reader-0.9.8.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>log4j-1.2.15.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>log4j-1.2.15.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>looks.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>looks.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>neethi-2.0.4.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>neethi-2.0.4.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>OpenSwing.jar</name>
			<version-id>1.1</version-id>
		</pattern>
		<file>OpenSwing.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>OpenSwingBeanInfo.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>OpenSwingBeanInfo.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>poi-3.2-FINAL-20081019.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>poi-3.2-FINAL-20081019.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>poi-contrib-3.2-FINAL-20081019.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>poi-contrib-3.2-FINAL-20081019.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>poi-scratchpad-3.2-FINAL-20081019.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>poi-scratchpad-3.2-FINAL-20081019.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>simple-json.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>simple-json.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>slf4j-api-1.5.0.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>slf4j-api-1.5.0.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>slf4j-log4j12-1.5.0.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>slf4j-log4j12-1.5.0.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>spring.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>spring.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>swing-layout.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>swing-layout.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>twaver.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>twaver.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>substance.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>substance.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>DJNativeSwing.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>DJNativeSwing.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>DJNativeSwing-SWT.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>DJNativeSwing-SWT.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>jna_WindowUtils.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jna_WindowUtils.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>jna-3.2.4.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jna-3.2.4.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>MozillaInterfaces-1.8.1.3.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>MozillaInterfaces-1.8.1.3.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>swt-3.6M6-win32-win32-x86.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>swt-3.6M6-win32-win32-x86.jar</file>
	</resource>
	<resource>
		<pattern>
			<name>dom4j-1.6.1.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>dom4j-1.6.1.jar</file>
	</resource>	
	<resource>
		<pattern>
			<name>pipeline.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>pipeline.jar</file>
	</resource>	
	<resource>
		<pattern>
			<name>jRegistryKey.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jRegistryKey.jar</file>
	</resource>	
	<resource>
		<pattern>
			<name>jRegistryKey.dll.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>jRegistryKey.dll.jar</file>
	</resource>	
	<resource>
		<pattern>
			<name>commons-collections-3.1.jar</name>
			<version-id>1.0</version-id>
		</pattern>
		<file>commons-collections-3.1.jar</file>
	</resource>
</jnlp-versions>

以上は1つのC/Sアーキテクチャシステムの毎回のリリースの流れである.
1 antファイルコンパイルを使用してjarを生成する
2ビザの生成
3クライアントにログインしてビザのjaryバージョンと同じように保証する
4打った棚をサーバーに入れて起動に成功すれば、クライアントにログインしてクライアントプログラムの認証に成功する.