首页 > 解决方案 > 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>

标签: javajnlp

解决方案


我通过切换解决了这个问题:

    <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>

推荐阅读