`

swing 程序发布(二)jnlp参数接收

阅读更多

 有些时候,我们需要往jnlp 中传入各种参数,但是jnlp 本身只是一个xml 描述文件,并不能接收参数,那该怎么办呢 ?
   这里有2种方法,可以往jnlp 传入动态参数
   方法一: 修改jnlp-servlet源码

JnlpFileHandler.java 中的specializeJnlpTemplate 方法
 原先的specializeJnlpTemplate

java 代码
  1. /* This method performs the following substituations  
  2.      *  $$name  
  3.      *  $$codebase  
  4.      *  $$context  
  5.      */  
  6.     private String specializeJnlpTemplate(HttpServletRequest request, String respath, String jnlpTemplate) {   
  7.         String urlprefix = getUrlPrefix(request);   
  8.         int idx = respath.lastIndexOf('/'); //   
  9.         String name = respath.substring(idx + 1);    // Exclude /   
  10.         String codebase = respath.substring(0, idx + 1); // Include /   
  11.         jnlpTemplate = substitute(jnlpTemplate, "$$name",  name);   
  12.         jnlpTemplate = substitute(jnlpTemplate, "$$codebase",  urlprefix + request.getContextPath() + codebase);   
  13.         jnlpTemplate = substitute(jnlpTemplate, "$$context", urlprefix + request.getContextPath());   
  14.         return jnlpTemplate;   
  15.     }  

  修改后的

java 代码
  1. private String specializeJnlpTemplate   
  2. (HttpServletRequest request, String respath, String jnlpTemplate) {   
  3. String urlprefix = getUrlPrefix(request);   
  4. System.out.println("urlprefix:" + urlprefix);   
  5. System.out.println("respath:" + respath);   
  6. int idx = respath.lastIndexOf('/');   
  7. String name = respath.substring(idx + 1);   
  8. System.out.println("name1:" + name);   
  9. String codebase = respath.substring(0, idx + 1);   
  10. jnlpTemplate   
  11.     = substitute(jnlpTemplate, "$$codebase",   
  12.          urlprefix + request.getContextPath() + codebase);   
  13. jnlpTemplate = substitute(jnlpTemplate, "$$context",   
  14.               urlprefix + request.getContextPath());   
  15. int index = name.indexOf("?");   
  16. System.out.println("index:" + index);   
  17. if (index != -1)   
  18.     name = name.substring(0, index);   
  19. System.out.println("name2:" + name);   
  20. jnlpTemplate = substitute(jnlpTemplate, "$$name", name);   
  21. Enumeration enum1 = request.getParameterNames();   
  22. while (enum1.hasMoreElements()) {   
  23.     String key = enum1.nextElement().toString();   
  24.     String value = request.getParameter(key);   
  25.     jnlpTemplate = substitute(jnlpTemplate, "$$" + key, value);   
  26. }   
  27. return jnlpTemplate;   
  28.    }  

方法二
    使用sevlet或者其他方式动态生成你的jnlp文件内容,然后直接输出到浏览器。

java 代码
  1. ...................   
  2.  response.setContentType("application/x-java-jnlp-file");       
  3.  PrintWriter out = response.getWriter();       
  4.  out.println("<?xml version=\"1.0\" encoding=\"GBK\"?>");   
  5.  ....................  
分享到:
评论

相关推荐

    jnlp 新手开发把手教

    用户访问 JNLP 部署应用程序的站点,下载发布的应用程序,可以在在线运行,也可以通过 JNLP 的客户端离线运行已下载的应用程序。 一、JWS 简介 JWS 主要用来通过网络部署你的应用程序,它具有安全、稳定、易维护、...

    JNLP开发(JWS)

    JNLP文件是一种基于XML的配置文件,用于指定应用程序的元数据、资源需求以及运行时参数。其中,面向用户的元数据(如应用名称、图标和描述)、资源定位信息(哪些资源需从服务器获取)以及主类的指定,都是构成JNLP...

    java swing用Logger输出错误日志.docx

    在Java编程中,日志记录是一项非常重要的任务,它帮助开发者追踪程序运行状态,调试问题,以及记录系统事件。在Swing应用中,我们同样可以使用Java内置的`java.util.logging`包来输出错误日志。这篇文档主要讨论了...

    JNLP

    标题 "JNLP" 指的是 Java Network Launch Protocol,这是一种由Java平台提供的技术,用于在网络上启动和运行Java应用程序。JNLP是Java Web Start的一部分,允许用户在浏览器或者独立的桌面环境中无缝地下载、安装和...

    jnlp详细文档

    5. **参数传递**:如果需要,JNLP文件也可以传递命令行参数给应用程序。 6. **更新策略**:JNLP支持自动或手动检查更新,使得开发者可以轻松地为用户提供新版本的应用程序。 7. **国际化**:通过在JNLP文件中定义...

    Web程序中的JRE版本检测及JNLP文件的直接打开

    本文将深入探讨如何在Web环境中检测用户系统上的JRE版本,并通过Java Network Launch Protocol (JNLP)文件直接启动应用程序。 首先,我们要了解如何检测用户的JRE版本。这通常通过JavaScript实现,因为JavaScript...

    JNLP ant webstart sign genkey sample

    标题“JNLP ant webstart sign genkey sample”涉及到的是Java网络启动(Java Web Start,JWS)技术,以及如何使用Ant...这个过程对于任何希望发布通过Java Web Start技术运行的Java应用程序的开发者都是至关重要的。

    jnlp例子

    Java Web Start(JNLP,Java Network Launch Protocol)是Java平台提供的一种技术,用于在网络上启动基于Java的应用程序。它提供了一种安全、便捷的方式,让用户能够通过点击一个链接来下载和运行Java应用,无需手动...

    jenkins-jnlp-slave镜像

    jenkins-jnlp-slave镜像

    java swing登录页面代码

    Java Swing是Java GUI(图形用户界面)库的一部分,主要用于创建桌面应用程序。在这个特定的场景中,我们有一个使用Java Swing编写的用户登录页面。这个登录页面允许用户输入他们的凭证,如用户名和密码,然后显示...

    java程序发布资料收集

    二、Java Web应用程序发布 对于Web应用程序,发布过程略有不同: 1. **构建WAR文件**:Web应用程序被打包成WAR(Web Application Archive)文件,包含Servlet、JSP、CSS、JavaScript等资源。 2. **应用服务器**:...

    Java多彩动画程序.jar (.html, .jnlp)

    Java多彩动画程序.jar是一个基于Java技术开发的动态图形应用程序,它包含了HTML和JNLP(Java Web Start)文件,这表明该程序旨在通过网络进行分发和执行。下面将详细介绍这些概念及其相关知识点。 首先,Java是...

    jnlp本地共享策略

    用jnlp开启一个服务,实现本地桌面远程共享

    1267342204836-integrated.jnlp

    java哪里都好用,不会就用jnlp来下载JAVA吧,就用它来下载,很不错的下载软件

    jfreechart-1.0.8-demo.jnlp

    标题 "jfreechart-1.0.8-demo.jnlp" 指示的是一个基于JFreeChart库的1.0.8版本的演示程序,其中可能包含了展示JFreeChart功能的各种图表示例。JFreeChart是一个开源Java库,用于创建高质量的、可定制的图表,包括...

    jenkins-jnlp.tar.gz

    https://blog.csdn.net/weixin_46560589/article/details/128801979 文章《【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(中)》测试 jenkins 的 CI/CD 实验所需资料文件!

    利用 Java Web Start发布你用java程序

    ### 利用 Java Web Start 发布 Java 程序 #### JWS——Java Web Start 的功能与优势 Java Web Start(简称 JWS)是 Sun Microsystems(现 Oracle)为解决 Java 应用程序部署和更新问题而开发的一项技术。它是 JSR-...

    OneWireViewer.jnlp

    OneWireViewer软件的java运行版本,ONEWIREVIEWER JAVA WEB入门,可以将OneWireViewer作为Java™Web Start程序安装在Java支持的操作系统上。

Global site tag (gtag.js) - Google Analytics