java - JNLP 应用程序 - Lib 文件夹未发送到客户端
问题描述
我有一个 java webstart 应用程序,我已将它从 Applet 转换为 Application,因为 applet 已被弃用。在我尝试修改指向 jnlp 文件的 html 文件时,我似乎无法启动程序。当我点击链接时,会下载 jnlp 文件,但不会下载相应的 lib 文件夹。关于为什么的任何想法?
我能够在 Eclipse 中作为应用程序运行该应用程序。所以这些问题与 JNLP 有关。罐子也有正确的签名。
我在启动 .jnlp 时遇到的错误是它无法找到 /lib/MyJar.jar。它尝试启动 java,但我得到了运行时异常。我从 Chrome(将其视为下载)和 IE(将其放在临时文件夹中)都得到了相同的异常(尽管在不同的位置寻找 jar)。
启动 HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Application</title>
</head>
<body>
<h3>Application</h3>
<br>
<a href="/param.xml" download="param.xml">Download param.xml file</a>
<br>
<br>
<a href="/launch.jnlp">Launch Application</a>
<br>
</body>
</html>
JNLP 文件
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="" href="launch.jnlp">
<information>
<title>Application</title>
<vendor>Info</vendor>
<homepage href=""/>
<description>Application description</description>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.7+"/>
<jar href="lib/Application-0.0.1-SNAPSHOT.jar" main="true"/>
<jar href="lib/commons-net-3.3.jar"/>
<jar href="lib/dd-plist-1.19.jar"/>
</resources>
<applet-desc main-class="My.Main.Class" name="Application"
width="1000" height="500">
</applet-desc>
</jnlp>
解决方案
我通过切换解决了这个问题:
<a href="/launch.jnlp">Launch Application</a>
至
<script src="https://www.java.com/js/deployJava.js"></script>
<a href="javascript:deployJava.launchWebStartApplication('launch.jnlp');">Launch Application</a>
推荐阅读
- angular - Zuul 代理、eureka 服务器和 Angular 6
- bash - 如何删除文件中每一行的第一个空格之后的所有内容?
- c# - 递归方法进入死循环
- java - 将 Java RSA 非对称加密转换为 Flutter Dart
- python - 递归错误:尝试从 python 文件中使用 openpyxl 创建独立的可执行文件
- ios - 在模块/文件夹级别添加源文档的可能性是什么?
- ejabberd - 要加入一个房间,需要在存在节中发送什么?我从属性中收到了许多没有昵称的存在节
- java - 如何在我的 Android 应用中添加某人的网站链接?
- r - 如何遍历r中的分类变量
- python - Python Asyncio 任务从不同的事件循环中取消