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. <information>
  3. <title>Transfers-inforesRES-参数开通平台</title>
  4. <vendor>
  5. ...
  6. </vendor>
  7. </information>
  8. <resources>
  9. //所有的架包,都绑定了版本号,每次发布都需要给本地工程的jar +1,例如 :paraClient.jar
  10. <j2se version="1.5+" java-vm-args="-Xms64m -Xmx512m" />
  11. <jar href="parasigned/paraClient.jar" version="1.1"/>
  12. <jar href="parasigned/rc_res.jar" version="1.1"/>
  13. <jar href="parasigned/ant.jar" version="1.0"/>
  14. <jar href="parasigned/antlr-2.7.6.jar" version="1.0"/>
  15. <jar href="parasigned/asm-2.2.3.jar" version="1.0"/>
  16. <jar href="parasigned/aspectjrt.jar" version="1.0"/>
  17. <jar href="parasigned/aspectjweaver.jar" version="1.0"/>
  18. <jar href="parasigned/cglib-nodep-2.1_3.jar" version="1.0"/>
  19. <jar href="parasigned/com.springsource.com.caucho-3.1.6.jar" version="1.0"/>
  20. <jar href="parasigned/commons-beanutils.jar" version="1.0"/>
  21. <jar href="parasigned/commons-io-1.3.2.jar" version="1.0"/>
  22. <jar href="parasigned/commons-lang.jar" version="1.0"/>
  23. <jar href="parasigned/commons-logging-1.1.1.jar" version="1.0"/>
  24. <jar href="parasigned/dozer-5.0.jar" version="1.0"/>
  25. <jar href="parasigned/flexjson.jar" version="1.0"/>
  26. <jar href="parasigned/forms-1.2.1.jar" version="1.0"/>
  27. <jar href="parasigned/jakarta-oro-2.0.8.jar" version="1.0"/>
  28. <jar href="parasigned/jakarta-regexp-1.5.jar" version="1.0"/>
  29. <jar href="parasigned/jcalendar.jar" version="1.0"/>
  30. <jar href="parasigned/jdom.jar" version="1.0"/>
  31. <jar href="parasigned/jide-oss-2.5.3.jar" version="1.0"/>
  32. <jar href="parasigned/JImage.jar" version="1.0"/>
  33. <jar href="parasigned/jwf-1.0.1.jar" version="1.0"/>
  34. <jar href="parasigned/jxl.jar" version="1.0"/>
  35. <jar href="parasigned/jxls-core-0.9.8.jar" version="1.0"/>
  36. <jar href="parasigned/jxls-reader-0.9.8.jar" version="1.0"/>
  37. <jar href="parasigned/log4j-1.2.15.jar" version="1.0"/>
  38. <jar href="parasigned/looks.jar" version="1.0"/>
  39. <jar href="parasigned/neethi-2.0.4.jar" version="1.0"/>
  40. <jar href="parasigned/OpenSwing.jar" version="1.1"/>
  41. <jar href="parasigned/OpenSwingBeanInfo.jar" version="1.0"/>
  42. <jar href="parasigned/poi-3.2-FINAL-20081019.jar" version="1.0"/>
  43. <jar href="parasigned/poi-contrib-3.2-FINAL-20081019.jar" version="1.0"/>
  44. <jar href="parasigned/poi-scratchpad-3.2-FINAL-20081019.jar" version="1.0"/>
  45. <jar href="parasigned/simple-json.jar" version="1.0"/>
  46. <jar href="parasigned/slf4j-api-1.5.0.jar" version="1.0"/>
  47. <jar href="parasigned/slf4j-log4j12-1.5.0.jar" version="1.0"/>
  48. <jar href="parasigned/spring.jar" version="1.0"/>
  49. <jar href="parasigned/swing-layout.jar" version="1.0"/>
  50. <jar href="parasigned/twaver.jar" version="1.0"/>
  51. <jar href="parasigned/substance.jar" version="1.0"/>
  52. <jar href="parasigned/DJNativeSwing.jar" version="1.0"/>
  53. <jar href="parasigned/DJNativeSwing-SWT.jar" version="1.0"/>
  54. <jar href="parasigned/jna_WindowUtils.jar" version="1.0"/>
  55. <jar href="parasigned/jna-3.2.4.jar" version="1.0"/>
  56. <jar href="parasigned/MozillaInterfaces-1.8.1.3.jar" version="1.0"/>
  57. <jar href="parasigned/swt-3.6M6-win32-win32-x86.jar" version="1.0"/>
  58. <jar href="parasigned/dom4j-1.6.1.jar" version="1.0"/>
  59. <jar href="parasigned/commons-collections-3.1.jar" version="1.0"/>
  60. </resources>
  61. <security>
  62. <all-permissions />
  63. </security>
  64. //登陆时候需要认证的参数;
  65. <application-desc main-class="Launch">
  66. <argument><%=URL%></argument>
  67. <argument><%=port%></argument>
  68. <argument><%=staffcode%></argument>
  69. <argument><%=passwdMd5%></argument>
  70. <argument>product</argument>
  71. <argument><%=SysCode%></argument>
  72. <argument><%=timestamp%></argument>
  73. </application-desc>
  74. </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. <property environment="env" />
  7. <property name="base.dir" value="." />
  8. <property name="shared.dir" value="../rcSharedProject" />
  9. <property name="project.name" value="backend" />
  10. <property name="application.name" value="lobby" />
  11. <target name="detect.file"   >
  12. <echo>正在检查是否存在${base.dir}/build-${user.name}.properties文件....</echo>
  13. <condition property="fileIsExists" >
  14. <and>
  15. <available file="${base.dir}/build-${user.name}.properties"/>
  16. </and>
  17. </condition>
  18. </target>
  19. <target name="loadUserProperty" if="fileIsExists" depends="detect.file">
  20. <echo>存在${base.dir}/build-${user.name}.properties文件....</echo>
  21. <property file="${base.dir}/build-${user.name}.properties"/>
  22. </target>
  23. <target name="loadDefaultProperty" unless="fileIsExists" depends="loadUserProperty">
  24. <echo>不存在${base.dir}/build-${user.name}.properties文件!使用默认TOMCAT配置..</echo>
  25. <property file="build.properties"/>
  26. </target>
  27. <target name="init" depends="loadDefaultProperty">
  28. <echo>tomcat.root=${tomcat.root}/</echo>
  29. <property name="app.root" value="${tomcat.root}/webapps/${application.name}" />
  30. <property name="cache.root" value="${tomcat.root}/work/Catalina/localhost/${application.name}" />
  31. <property name="base.dir" value="." />
  32. <property name="shared.dir" value="../transSharedProject" />
  33. <property name="global.dir" value="${shared.dir}/global" />
  34. <property name="domains.dir" value="${shared.dir}/domains" />
  35. <property name="servicesInterface.dir" value="${shared.dir}/services" />
  36. <property name="uis.dir" value="${base.dir}/UIS" />
  37. <property name="config.dir" value="${base.dir}/config" />
  38. <property name="classes.dir" value="${base.dir}/publish/classes" />
  39. <property name="WebRoot.dir" value="${base.dir}/WebRoot" />
  40. <property name="lib.dir" value="${base.dir}/lib" />
  41. <property name="dist.dir" value="${base.dir}/publish/dist" />
  42. <property name="jarfile" value="${project.name}.jar" />
  43. <property name="publish.dir" value="${base.dir}/publish" />
  44. <path id="classpath">
  45. <fileset dir="${lib.dir}">
  46. <include name="*.jar" />
  47. </fileset>
  48. <path location="${classes.dir}" />
  49. </path>
  50. <mkdir dir="${classes.dir}" />
  51. <mkdir dir="${dist.dir}" />
  52. </target>
  53. <!-- 数字签名用的密钥信息参数 -->
  54. <property name="keystoreName" value="gpdi.inforessystem"/>
  55. <property name="storepass" value="gpdi.inforessystem"/>
  56. <property name="keystore" location="${base.dir}/publish/${keystoreName}"/>
  57. <property name="keypass" value="gpdi.inforessystem"/>
  58. <property name="keysize" value="1024"/>
  59. <property name="alias" value="gpdi.inforessystem"/>
  60. <property name="validity" value="3650"/>
  61. <target name="compile" depends="init">
  62. <copy todir="${dist.dir}">
  63. <fileset dir="${uis.dir}">
  64. <include name="**" />
  65. </fileset>
  66. <fileset dir="${global.dir}">
  67. <include name="**" />
  68. </fileset>
  69. <fileset dir="${domains.dir}">
  70. <include name="**" />
  71. </fileset>
  72. <fileset dir="${servicesInterface.dir}">
  73. <include name="**" />
  74. </fileset>
  75. </copy>
  76. <javac srcdir="${dist.dir}" encoding="utf-8"  destdir="${classes.dir}" includes="**" debug="on">
  77. <classpath refid="classpath" />
  78. </javac>
  79. <copy todir="${classes.dir}">
  80. <fileset dir="${uis.dir}">
  81. <include name="**" />
  82. </fileset>
  83. <fileset dir="${config.dir}">
  84. <include name="**" />
  85. </fileset>
  86. <fileset dir="${domains.dir}">
  87. <include name="**" />
  88. </fileset>
  89. </copy>
  90. </target>
  91. <target name="jar" depends="compile">
  92. <mkdir dir="${publish.dir}" />
  93. <mkdir dir="${publish.dir}/lib" />
  94. <mkdir dir="${publish.dir}/signed" />
  95. <jar destfile="${publish.dir}/lib/${jarfile}">
  96. <fileset dir="${classes.dir}">
  97. <include name="**" />
  98. </fileset>
  99. </jar>
  100. <copy todir="${publish.dir}/lib">
  101. <fileset dir="${lib.dir}">
  102. <include name="*.jar" />
  103. </fileset>
  104. </copy>
  105. <copy todir="${publish.dir}">
  106. <fileset dir="${base.dir}">
  107. <include name="*.bat" />
  108. </fileset>
  109. </copy>
  110. </target>
  111. <!-- 创建证书 -->
  112. <target name="genericKey">
  113. <echo message="genkey..."/>
  114. <delete>
  115. <fileset dir="${base.dir}/publish">
  116. <include name="${keystoreName}"/>
  117. </fileset>
  118. </delete>
  119. <genkey keystore="${keystore}" storepass="${storepass}" alias="${alias}" keypass="${keypass}" keysize="${keysize}"
  120. verbose="true" validity="${validity}" dname="CN=GPDI, OU=Infores, O=gpdi.com, C=ZH">
  121. </genkey>
  122. <echo message="genkey... done"/>
  123. </target>
  124. <!-- 对JAR进行数字签名 -->
  125. <target name="signJar" depends="jar, genericKey">
  126. <echo message="jarsigner..." />
  127. <delete>
  128. <fileset dir="${base.dir}/publish/signed">
  129. <include name="**.jar"/>
  130. </fileset>
  131. </delete>
  132. <signjar destDir="${base.dir}/publish/signed"
  133. alias="${alias}" keystore="${keystore}"
  134. storepass="${storepass}">
  135. <path>
  136. <fileset dir="${base.dir}/publish/lib" includes="**.jar" />
  137. </path>
  138. <flattenmapper />
  139. </signjar>
  140. <echo message="jarsigner... done." />
  141. </target>
  142. <target name="clean-cache"  depends="signJar">
  143. <mkdir dir="${cache.root}" />
  144. <delete>
  145. <fileset dir="${cache.root}">
  146. <include name="**"/>
  147. </fileset>
  148. </delete>
  149. </target>
  150. <target name="deploy"  depends="clean-cache">
  151. <mkdir dir="${app.root}" />
  152. <mkdir dir="${app.root}/signed" />
  153. <mkdir dir="${app.root}/WEB-INF" />
  154. <mkdir dir="${app.root}/WEB-INF/lib" />
  155. <mkdir dir="${app.root}/WEB-INF/classes" />
  156. <!--<copy todir="${app.root}/">
  157. <fileset dir="${WebRoot.dir}">
  158. <include name="**" />
  159. </fileset>
  160. </copy>-->
  161. <copy todir="${app.root}/signed">
  162. <fileset dir="${base.dir}/publish/signed">
  163. <include name="**.jar" />
  164. </fileset>
  165. </copy>
  166. </target>
  167. <target name="upload"  depends="clean-cache">
  168. <mkdir dir="${app.root}" />
  169. <mkdir dir="${app.root}/signed" />
  170. <mkdir dir="${app.root}/WEB-INF" />
  171. <mkdir dir="${app.root}/WEB-INF/lib" />
  172. <mkdir dir="${app.root}/WEB-INF/classes" />
  173. <!--<copy todir="${app.root}/">
  174. <fileset dir="${WebRoot.dir}">
  175. <include name="**" />
  176. </fileset>
  177. </copy>-->
  178. <copy todir="${app.root}/signed">
  179. <fileset dir="${base.dir}/publish/signed">
  180. <include name="**.jar" />
  181. </fileset>
  182. </copy>
  183. <copy todir="${app.root}">
  184. <fileset dir="${base.dir}/publish">
  185. <include name="start.bat" />
  186. </fileset>
  187. </copy>
  188. </target>
  189. <!-- 远程部署TOMCAT属性
  190. <property name="server.address" value="211.155.23.240" />
  191. <property name="server.sshport" value="22" />
  192. <property name="server.tomcat.port" value="8080" />
  193. <property name="server.tomcat.service" value="Tomcat6" />
  194. <property name="server.tomcat.path" value="D:\env\apache-tomcat-6.0.14\webapps" />
  195. <property name="server.username" value="gpdi.infores" />
  196. <property name="server.password" value="1qaz2wsx" />
  197. -->
  198. <target name="detect">
  199. <condition property="tomcat.running" >
  200. <and>
  201. <socket server="${server.address}" port="${server.tomcat.port}" />
  202. </and>
  203. </condition>
  204. </target>
  205. <target name="tomcat.stop" if="tomcat.running" description="停止TOMCAT" depends="init">
  206. <echo> rexec 到${server.address}</echo>
  207. <echo message="正在停止TOMCAT..." />
  208. <sshexec
  209. host="${server.address}"
  210. username="${server.username}"
  211. password="${server.password}"
  212. port="${server.sshport}"
  213. trust="true"
  214. command="net stop ${server.tomcat.service}"/>
  215. <waitfor>
  216. <not>
  217. <socket server="${server.address}" port="${server.tomcat.port}" />
  218. </not>
  219. </waitfor>
  220. </target>
  221. <target name="tomcat.start"
  222. description="modify application database and sysid"
  223. depends="init">
  224. <echo> rexec 到${server.address}</echo>
  225. <echo message="正在启动TOMCAT..." />
  226. <sshexec
  227. host="${server.address}"
  228. username="${server.username}"
  229. password="${server.password}"
  230. port="${server.sshport}"
  231. trust="true"
  232. command="net start ${server.tomcat.service}"/>
  233. <waitfor>
  234. <and>
  235. <socket server="${server.address}" port="${server.tomcat.port}" />
  236. </and>
  237. </waitfor>
  238. </target>
  239. <!--增量上传: 把所有自己写的代码打包JAR包 -->
  240. <target name="uploadJarToServer" depends="init">
  241. <scp todir="${server.username}:${server.password}@${server.address}:${server.tomcat.path}\${application.name}"
  242. trust="true"
  243. verbose="true"
  244. port="${server.sshport}"
  245. >
  246. <fileset dir="${base.dir}/publish/">
  247. <include name="signed" />
  248. <include name="signed/**" />
  249. </fileset>
  250. </scp>
  251. </target>
  252. <!-- 增量上传 -->
  253. <target name="增量上传" depends="init,detect, tomcat.stop,uploadJarToServer,tomcat.start"></target>
  254. </project>

Java代码  

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

Java代码  

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

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

时间: 2024-10-12 13:06:02

jnlp的相关文章

打开jnlp Faild to validate certificate, the application will not be executed.

今天连jenkins, 本来好好的,只是我在一台机器上一直不断的启动不同的jnlp,绑定不同命名的slave, 然后突然就报错了, 如下截图所示: 万能上谷歌啦,说这是个jdk的bug, 但是既然是bug也还是要解决啊! http://bugs.java.com/view_bug.do?bug_id=7197652 还有这里:  http://bugs.java.com/view_bug.do?bug_id=7198537 找到这个文件夹,C:\Users\{username}\AppData\

[java] JNLP文件安装

JNLP(Java Network Launching Protocol )是java提供的一种可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个java应用程序. Java桌面应用程序以JNLP 的方式发布,如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优点. ---<百度百科> 首先确认jdk环境搭建完成. 直接将sfds.jnlp文件拖到FireFox浏览器中打开(IE,Chro

JNLP(Java Web Start )(转)

JNLP(Java Network Launching Protocol )是java提供的一种可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个java应用程序. Java桌面应用程序以JNLP 的方式发布,如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优点. JNLP文件具体说明编辑 <?xml version="1.0" encoding="UTF-8&q

jnlp初次试用

1.jnlp是什么?是java提供的一种让你可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个 java应 用程序.好处就不用说了,如果你的java应用程序以jnlp 的方式发布,如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优点了. 2.新建一个web应用程序,写一个测试类Test.java,把这个测试类打成一个jar包,命名为jnpl.jar,放入项目的根目录下面WebRoot 3.

JNLP文件

javaws -viewer可以查看已经下载的jar包 用下面的python文件 下载jnlp文件中的jar包 (需要有访问权限) #!/usr/bin/env python # # jnlp_crawler.py - Download all the jar files in a jnlp file for offline examination # Sheran Gunasekera # from xml.dom.minidom import parse from xml.parsers.e

jnlp本地运行调试

jnpl本地运行调试,需要在java控制面板中设置下,打开控制面板->Java->高级:其中调试下面的启用跟踪启用日志记录,显示小应用程序生命周期异常错误都打上勾.java控制台下面显示控制台选中,就可以在运行的时候看到相关信息了. 记录一下..

[ci] jenkins kubernetes插件配置-通过jnlp

jenkins kubernetes插件 首先插件管理,搜索kubernetes plugin安装 配置kubernetes云 配置项目 执行成功 有pod tmplate 有container template

Java虚拟机(JVM)中的内存设置详解

在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步. PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance. GC(Garbage Collection)应该不会对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很

[从零搭网站五]http网站Tomcat配置web.xml和server.xml

点击下面连接查看从零开始搭网站全系列 从零开始搭网站 上一章我们在CentOS下搭建了Tomcat,但是还是没有跑起来...那么这一章就把最后的配置给大家放上去. 有两种方式:一种是用 rm -f 给这两个文件删掉,再用vim建新的出来.另一种是vim编辑,输入:set nu 显示行号,再输入:1,最后一行的行号d 把全文删掉. 然后再复制粘贴我给你们的配置文件就行. web.xml  , 完全不用修改,直接复制就行了: <?xml version="1.0" encoding=