JNLP简单应用

JNLP,全称为Java Network Launch Protocol,以为Java网络加载协议。JNLP是Java WebStart的一个组成协议,而Java WebStart是一种简化Java 应用程序部署的技术,根据jnlp的配置文件,自动去网络上加载应用程序,并运行在Java WebStart上(在JDK1.4以后都包含了Java WebStart)。

通过JNLP发布程序,可以大致分为以下几布:

一:开发你想要发布的应用程序。

二:把开发的应用程序以及所有用的资源打包成一个或几个jar包。

三:如果你的应用程序应用到了机器上的本地资源,则需要为所有的jar包签名,否则可以直接发布。

四:编写jnlp文件。

下面我通过我做的联系简单一下整个流程:

对项目中的类打jar包:

webstart->Export->Runnable JAR file->选择存放位置和jar名(如:d:/HelloWorld.jar)和运行的main方法所在的类->finish

签名按以下操作进行:

1,开始-——运行——cmd,进入打好的jar包的目录,运行下面这句话:

keytool -genkey -keystore myKeystore -alias tankApp(其中-alias是为起别名),这时会提示你属于一些信息,可以只输入密码,其他的直接回车略过,密码一定要记住,

2,如果你想察看一下刚才生成的myKeystore文件的内容,可以使用下面这句话:

keytool -list -keystore myKeystore,

你会看到下面的内容:

3,对你需发布应用程序的jar包进行签名,运行下面这句话:

jarsigner -keystore myKeystore tank.jar tankApp,这是会提示你输入密码,就是刚才要记住的密码。

好了,现在可以继续进行了。打开你的MyEclipse,新建一个Web Project,名为jnlpTest,在WebRoot下建一个文件夹名为app,在app下新建lib目录,把签过名的jar包放在这里。在app目录下新建一个jnlp文件(可以建一个txt,然后把后缀名改为.jnlp),其实,jnlp就是一个xml文件,里面的配置信息才是最重要的。你可以不用自己写,去官方找一个写好的jnlp,然后拿下来修改它。我的jnlp文件如下:

spec="1.0+"

codebase="http://localhost:8080/jnlpTest/apps"

href=" jnlpTest.jnlp">

JNLP Test

WBF

JNLP Test

下面对里面的配置做一下简单的解:

spec:jnlp 文件运行的最低版本为1.0,这里用1.0+,当然还有1.5,6.0。

codebase:是href属性中的jnlp文件所在的位置

href:这里要用jnlp文件的全名。

属性里面时候一些对资源文件的简单描述。

:发布的程序的标题。

:发行人的信息,可以把自己的名字写上。

:存放有关应用程序的相关文档的URL,可以不写。

:对应用程序的简短描述,可以有多对,可以不写。

:下载后用来作为表示的图像。

:指明可以离线运行应用程序,不需要修改。

:如果没有指明,默认是不允许应用程序访问用户的本地资源,如果设定为,则表示允许应用程序访问用户的本地资源,一般都会设定此值。

:

:main-class:应用程序运行启动的主类

:应用程序运行时的参数,可以有多个,每一个参数用一对参数。

现在,最核心的东西陪完了,可以写一个index.jsp页面了:

JNLP Test

function   insertLink(url, name) {

document.write(""  + name +   "
");

}

insertLink("http://localhost:8080/jnlpTest/apps/jnlpTest.jnlp","   jnlpTest ");

这时,所有的东西基本都准备好了,可以启动tomcat服务器,在浏览器中输入: http://localhost:8080/jnlpTest/index.jsp,不出意外会看到:jnlpTest字样,点击它就会找到app下的jnlpTest.jnlp文件,自动下载文件,下载完毕后会在Java WebStart上运行了。当然你可以直接到app下运行jnlpTest.jnlp,选择用Java(TM) Web Start Laucher。

JNLP的应用非常广泛,比如把对applet的应用,可以使人机交互的过程更为丰富多样,我现在正在做的这样一个工作。对于JNLP,我在今天下午才成功的写出了这个小例子,对JNLP的了解还只是皮毛,我觉得这项技术应该得到更为广泛的应用,这使得程序员可以不擅长做页面的样式,直接通过程序写出要与客户进行交互的applet,然后嵌入到页面中去。

在学习JNLP的过程中,会经常看到这样一个名词RIA,即:Rich Internet Application,译为丰富性网络应用服务,是一种具有近似于传统桌面应用软件系统功能和特性的网络应用系统。RIA系统最大的特点是将大部分处理任务都从用户界端移植到客户端,仅保留一些必要数据与服务器端进行信息交互。越深入的学习越觉得这里边真的是丰富多彩,很有意思。

java jnlp_Java Web Start 与jnlp结合实例讲解相关推荐

  1. java实现页面高效刷新_selenium高效应对Web页面元素刷新的实例讲解

    当我们在页面上进行selenium.type()或者selenium.click()操作的时候,往往需要需要等待一个元素的出现,对于一般的网页,当我们进入一个新页面的时候,往往会使用selenium. ...

  2. java arraylist用法_Java入门系列:实例讲解ArrayList用法

    本文通过实例讲解Java中如何使用ArrayList类. Java.util.ArrayList类是一个动态数组类型,也就是说,ArrayList对象既有数组的特征,也有链表的特征.可以随时从链表中添 ...

  3. java jnlp_Java Web Start实践:动态生成JNLP

    Java很早就推出了Java Web Start(简称JWS)技术.这一技术的初衷很好:希望将桌面程序和Web页面之间搭起一个无缝的桥梁.虽然Applet技术已经存在了十多年,但是它 日趋老迈衰落,所 ...

  4. java sql函数_Java调用Sql存储过程实例讲解

    1.使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转 义序列.不带参数的 call 转义序列的语法如下所示: {call procedure-n ...

  5. java面向对象例子_Java面向对象及方法实例讲解

    第一节方法 1.1定义 定义:封装了能够完成特定功能的代码块,是程序编程中的一种功能实现单元: 1.2语法 修饰符  返回值类型   方法名(参数列表) { 方法体: } 例子: 1 public s ...

  6. JAVA栈(Stack)用法附实例讲解

    一.功能 栈(Stack)是Vector的一个子类,它实现了一个标准的后进先出的栈,也定义了自己的一些方法. 二.声明 1.声明一个栈的写法,E表示数据类型,name是你给栈起的名字,其余为关键字 S ...

  7. JAVA队列(Queue)用法附实例讲解

    一.功能 队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作. 二.声明 1.声明一个栈的写法,E表示数据类型,name是你给队列起的名字,LinkedList类实现了Q ...

  8. 【译】①JWS之Java[tm] Web Start开发者指南目录

    为什么80%的码农都做不了架构师?>>>    Java[tm] Web Start开发者指南1.2版本. 这个开发者指南提供了怎么使用Java[tm] web start和jnlp ...

  9. 守护线程和用户线程的真正区别(实例讲解)

    java 中的线程分为两种:守护线程(Daemon)和用户线程(User). 用户线程:我们平时所创建的都是用户线程. 守护线程:为用户线程提供服务. 任何线程都可以设置为守护线程和用户线程,通过方法 ...

最新文章

  1. 2022-2028年中国海洋电力行业市场深度分析及发展策略分析报告
  2. 数据结构和算法动态可视化
  3. 年薪75万的真实技术面试实践攻略(篇章一)
  4. 小程序 a标签_微慕WordPress小程序增强版V2.0新版上线
  5. 【ES6】JS类的用法class
  6. vue手机端回退_华为官方教程:以 P40 为例,鸿蒙 OS 2.0 Beta 版本回退到 EMUI 11 稳定版...
  7. 常见的不同类型运算的转换方式
  8. [2007最后一博]Url地址重写,利用HttpHander手工编译页面并按需生成静态HTML文件...
  9. MATLAB代码: 合并两张图
  10. echarts 设置各省份颜色
  11. Python——print()函数的学习笔记
  12. MIPS架构之start.s汇编分析
  13. 【Matlab代码】图像的小波分解和重构实现
  14. java pdf 模板_java通过PDF模板填写PDF表单
  15. 黑盒测试 之 因果图法
  16. cad二开之不通过netload加载命令(bundle文件的使用)
  17. Python彩色字符画
  18. 空间直角坐标转大地坐标 matlab实现
  19. 用malloc动态申请一个二维数组的三种方法
  20. 计算机无法识别出硬件,电脑检测不到网卡硬件信息怎么办

热门文章

  1. C++ map()和pair()用法
  2. Linux音频驱动开发概括
  3. Python for循环举例
  4. 《Android 开发入门》我为什么要在Android找工作越来越难的时候开始学习它
  5. android之Activity关闭返回数据到启动他的页面
  6. GB28181之H264打包PS
  7. CVPR学习(四):CVPR2019-目标检测
  8. 用Prime95来做linux下CPU压力测试
  9. 马斯洛需求的五个层次_运用马斯洛需求层次理论分析《吞噬星空》爽点之第九章...
  10. pytorch保存.pth文件