Java可执行命令之javaws
- 1️⃣ 概念
- 🔍JNLP (Java Network Launch Protocol) ?
- 2️⃣ 优势
- 3️⃣ 使用
- 3.1 语法
- 3.1.1 运行选项:-Xnosplash
- 3.1.2 运行选项:-wait
- 3.1.3 控制选项:-import [导入选项] < jnlp-file>
- 4️⃣ 应用场景
- 5️⃣ 注意事项
- 🌾 总结
1️⃣ 概念
Java Web Start(JWS)
是由Sun Microsystems(现为Oracle)开发的一种Java技术,旨在方便从Web浏览器启动和分发Java应用程序。
javaws
是Java Web Start
工具的命令行版本。它使用Java Network Launch Protocol (JNLP)
文件作为输入,并根据该文件描述的配置和资源来启动和运行相应的Java应用程序。
当用户点击JNLP
文件链接或者通过命令行运行javaws
命令时,Java Web Start
会解析JNLP
文件中的配置信息,并根据该配置来下载所需的资源和依赖项。随后,Java Web Start
会初始化应用程序所需的运行环境并启动相应的Java应用程序。
🔍JNLP (Java Network Launch Protocol) ?
JNLP (Java Network Launch Protocol) 是一种用于描述和启动 Java Web Start
应用程序的 XML
文件格式。JNLP
文件可以包含各种配置选项和元素,用于指定应用程序所需的资源、权限、启动参数等信息。
以下是 JNLP
文件中可以配置的主要内容:
- 信息:JNLP 文件的
<information>
元素用于提供有关应用程序的基本信息,例如标题、描述、供应商等; - 资源:通过
<resources>
元素,可以列出应用程序所需的资源,包括 JAR 文件、本机库、图像、HTML 文件等。可以为每个资源指定 URL 或文件路径,并进行版本管理和依赖性管理; - 应用程序描述:JNLP 文件使用
<application-desc>
元素来定义应用程序的启动属性。其中,main-class
属性指定了主类,该类将在启动时执行; - 安全:通过
<security>
元素,可以定义应用程序的安全策略和权限。可以指定应用程序所需的权限级别、限制代码执行等安全配置; - 扩展:通过
<extension>
元素,可以指定应用程序的扩展组件和库。这些组件可以是用户自定义的或从外部引入的; - 更新:使用
<update>
元素,可以设置应用程序的更新策略和行为。可以指定更新检查的频率、更新提示方式等。
除了上述内容,JNLP
文件还可以包含其他一些元素和属性,用于定义应用程序的图标、参数传递、桌面集成等更多功能。
通过配置 JNLP
文件,开发人员可以确保 Java Web Start
应用程序能够自动下载所需的资源,管理依赖项,并在启动时具有正确的权限和参数。JNLP
文件的灵活性使得部署和分发 Java 应用程序变得简单而方便。
2️⃣ 优势
- 简化部署与更新:使用
Java Web Start
,开发人员可以通过一个JNLP
文件来描述应用程序的依赖关系、资源需求和启动参数等。用户只需要点击JNLP
文件链接即可自动下载、安装和更新所需的Java应用程序; - 跨平台性:
Java Web Start
应用程序可以在支持Java运行时环境(JRE
)的多个操作系统上运行,提供了一个统一的部署和运行机制; - 沙盒安全模型:
Java Web Start
应用程序默认受到沙盒安全限制,可以防止恶意代码的执行,并确保应用程序只能访问授权的资源; - 自动更新:
Java Web Start
能够检测新版本的应用程序,自动下载并启动最新版本,使用户始终享有最新的功能和修复的Bug。
3️⃣ 使用
3.1 语法
javaws [运行选项] <jnlp-file>
javaws [控制选项]
其中,运行选项 包括可供设置的参数:
-verbose
:显示其他输出内容;-offline
:以脱机模式运行应用程序;-system
:仅从系统高速缓存运行应用程序;-Xnosplash
:运行时不显示启动屏幕;-J<选项>
:为VM提供选项;-wait
: 等待所有应用程序实例都退出后再退出javaws
。
而 控制选项包括:
-viewer
:在java控制面板中显示高速缓存查看器;-clearcache
:从高速缓存删除所有未安装的应用程序;-uninstall
:从高速缓存删除所有应用程序;-uninstall <jnlp-file>
:从高速缓存删除应用程序;-import [导入选项] <jnlp-file>
:将应用程序导入高速缓存。 而导入选项包含:-silent
:静默模式下运行,不显示任何对话框或警告;-system
:将应用程序导入系统高速缓存;-codebase <url>
:从给定的代码库检索资源;-shortcut
:以用户接受提示的方式安装快捷方式;-association
:以用户接受提示的方式安装关联。
上面汇总了javaws
的所有可选参数,读者可以根据自己的需求参照表格选择所需参数。下是主要介绍一些常用的可选参数:
-Xnosplash
:运行时不显示启动屏幕;-wait
:等待所有应用程序实例都退出后再退出javaws
;-import [导入选项] <jnlp-file>
:将应用程序导入高速缓存,< jnlp-file>
是JNLP文件的路径。
3.1.1 运行选项:-Xnosplash
下面是使用 javaws -Xnosplash
命令的示例:
-
创建一个
example.jar
Jar 文件,其中包含应用程序类文件。然后再创建一个example.jnlp
的 JNLP 文件,文件内容如下:<?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+" codebase="http://www.xiaoshan.com/" href="example.jnlp"> <information> <title>Example Application</title> <vendor>Example Company</vendor> </information> <resources> <!-- 指定需要下载和使用的 Java 类 --> <jar href="example.jar" main="true"/> </resources> <application-desc main-class="com.xiaoshan.MainClass"/> </jnlp>
-
将
example.jnlp
和example.jar
文件上传到可以通过网络访问的服务器上; -
打开终端或命令提示符窗口,并执行以下命令:
javaws -Xnosplash http://www.xiaoshan.com/example.jnlp
注意
http://www.xiaoshan.com/example.jnlp
为实际部署 JNLP 文件的 URL 地址。 -
执行该命令后,Java Web Start 将会自动下载 JNLP 文件和相关的资源,并启动应用程序。在使用
-Xnosplash
参数时,不会显示 Java Web Start 的启动画面。
以上案例展示了如何使用 javaws -Xnosplash
命令来启动Web上的Java应用程序。当执行该命令时,它会根据指定的 JNLP 文件下载所需的资源,并通过 example.jar
文件中的 com.xiaoshan.MainClass
主类来运行应用程序。当运行应用程序时,将直接进入应用程序界面,而不会显示 Java Web Start 的默认启动画面。
3.1.2 运行选项:-wait
以下是使用 javaws -wait
命令的示例:
-
仍然使用上边案例的已经传到可以通过网络访问的服务器上的
example.jnlp
和example.jar
文件; -
打开终端或命令提示符窗口,并执行以下命令:
javaws -wait http://www.xiaoshan.com/example.jnlp
-
执行该命令后,Java Web Start 将会自动下载 JNLP 文件和相关的资源,并启动应用程序。在使用
-wait
参数时,命令行界面将保持打开状态,直到应用程序退出。
这个案例展示了如何使用 javaws -wait
命令来启动 Web 上的 Java 应用程序并等待其退出。当执行该命令时,Java Web Start 将自动下载 JNLP 文件和相关资源,并通过 example.jar
文件中的 com.xiaoshan.MainClass
主类来运行应用程序。命令行界面将一直保持打开状态,直到应用程序退出,这使得我们可以实时查看应用程序的输出和日志。
3.1.3 控制选项:-import [导入选项] < jnlp-file>
下面是使用 javaws -import
命令并使用 -silent
选项的示例:
-
仍然使用上边案例的已经传到可以通过网络访问的服务器上的
example.jnlp
和example.jar
文件; -
打开终端或命令提示符窗口,并执行以下命令:
javaws -import -silent http://www.xiaoshan.com/example.jnlp
-
执行该命令后,Java Web Start 将自动下载 JNLP 文件和相关资源,并导入安装程序。在使用
-silent
参数时,不会显示任何对话框或警告。
这个案例展示了如何使用 javaws -import
命令并附加 -silent
选项来导入并静默安装 Java Web Start 应用程序。当执行该命令时,Java Web Start 将自动下载 JNLP 文件和相关资源,并执行所需的安装步骤(如果有)。在此过程中,不会显示任何对话框或警告,使安装过程在后台进行,并减少用户干预的需要。
4️⃣ 应用场景
Java Web Start
适用于各种应用场景:
- 企业内部分发和更新自定义Java应用程序;
- 在教育领域提供易于分发和更新的教学软件;
- 分发需要复杂计算和可视化的科研应用程序。
5️⃣ 注意事项
在使用javaws
命令时,需要注意以下事项:
- 用户需要正确安装并配置
Java Runtime Environment(JRE)
; JNLP
文件链接需要正确设置MIME
类型以及确保可访问性;- 应用程序开发人员需要考虑资源文件的大小和数量,以提高用户体验;
- 对
JNLP
文件进行来源和数字签名审核,确保安全性。
🌾 总结
Java Web Start
是一种通过JNLP
文件描述配置和资源的Java技术,使得从Web浏览器中运行和分发Java应用程序变得更加简单和便捷。javaws
命令是Java Web Start
工具的命令行版本,它根据JNLP
文件的配置来启动和运行Java应用程序。
Java Web Start
提供了跨平台性、自动更新和沙盒安全模型等优势,适用于不同领域的应用场景。但在使用过程中,需要注意安装和配置Java Runtime Environment(JRE)
以及审核JNLP
文件的来源和安全性。