Приложение JNLP - папка Lib не отправляется клиенту

У меня есть приложение java webstart, которое я преобразовал из апплета в приложение, поскольку апплеты устарели. В моей попытке изменить файл html, который указывает на файл jnlp, я, похоже, не смог запустить программу. Когда я нажимаю на ссылку, загружается файл jnlp, но не соответствующая папка lib. Любые идеи о том, почему?

Я могу запустить приложение в eclipse как приложение в порядке. Таким образом, проблемы связаны с JNLP. Банки также должным образом подписаны.

Ошибка, которую я получаю при запуске .jnlp, заключается в том, что он не может найти /lib/MyJar.jar. Он пытается запустить java, и я получаю это исключение во время выполнения. Я получаю одно и то же исключение (хотя и ищу банку в разных местах) как из Chrome (рассматривает его как загрузку), так и из IE (помещает его во временные папки).

Запустить 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>

person Tacitus86    schedule 10.09.2018    source источник
comment
Вы можете запустить файл JNLP. Запуск файла .jnlp — это то, что кэширует JAR. Ваш браузер или ОС могут не понимать, как запустить файл .jnlp.   -  person Kevin Caravaggio    schedule 10.09.2018
comment
Это означает, что я могу открыть JNLP, когда он будет на моей машине? да. Если я дважды щелкну по нему, вы увидите всплывающий экран-заставку Java перед Исключением, что он не может найти мои банки.   -  person Tacitus86    schedule 10.09.2018
comment
Я думаю, вам просто нужно было установить атрибуты codebase + href для полного URL-адреса сервера.   -  person Kevin Caravaggio    schedule 10.09.2018
comment
У меня есть приложение Java WebStart, которое я преобразовал из апплета в приложение, поскольку апплеты устарели. Так же, как и Java Web Start.   -  person Andrew Thompson    schedule 11.09.2018
comment
Действительно? Что заменило его?   -  person Tacitus86    schedule 11.09.2018
comment
Прямой замены нет. Зависит от того, что делает ваше приложение: приложение клиент/сервер или автономное приложение, jlink,.... есть много возможностей...   -  person Lonzak    schedule 12.09.2018


Ответы (1)


Я решил это, переключив:

    <a href="/launch.jnlp">Launch Application</a>

to

<script src="https://www.java.com/js/deployJava.js"></script>
        <a href="javascript:deployJava.launchWebStartApplication('launch.jnlp');">Launch Application</a>
person Tacitus86    schedule 10.09.2018