Не отвечающее приложение после запуска с JNLP

Я изучаю JNLP и решил попробовать запустить небольшое приложение, созданное с помощью JNLP. Я создал простую программу Java и файл JNLP. Я загружаю как jar-файл, так и jnlp-файл на свой сервер apache вместе с html-файлом для отображения кнопки Launch. Это файл jnlp (я не уверен на 100%, правильно ли он):

<?xml version="1.0" encoding="UTF-8"?>
  <jnlp spec="1.0+" codebase="http://localhost:8080/" href="example.jnlp">
  <information>
      <title>Example</title>
      <vendor>Dev</vendor>
  </information>
  <resources>
      <!-- Application Resources -->
      <j2se version="1.6+"
            href="http://java.sun.com/products/autodl/j2se"/>
      <jar href="Example.jar" main="true" />

  </resources>
  <application-desc name="Example"
       main-class="main.Example"
       width="600"
       height="600">
   </application-desc>
   <update check="background"/>
  </jnlp>

Ниже приведен мой HTML-файл на моем сервере Apache:

<html>
  <head>
    <title>Example</title>
  </head>
  <body>
    <script src="http://www.java.com/js/deployJava.js"></script>
    <script>
      // using JavaScript to get location of JNLP file relative to HTML page
      var dir = location.href.substring(0, location.href.lastIndexOf('/')+1);
      var url = dir + "example.jnlp";
  document.alert(dir);
      deployJava.createWebStartLaunchButton(url, '1.6.0');
    </script>
  </body>
</html>

Проблема в том, что, когда я нажимаю кнопку Launch, он спрашивает, хочу ли я запустить example.jnlp. Затем через некоторое время приложение просто открывается, но когда я нажимаю на любую кнопку, они ничего не делают. Это похоже на то, как будто графический интерфейс показывает, но всей лежащей в основе логики нет. Есть идеи, в чем может быть проблема?

1 ответ

..Это файл jnlp (я не уверен на 100%, если это правильно): ..

Это не на 100% правильно. Проверьте это с помощью JaNeLA. Наибольшую озабоченность вызывает HREF "examp.jnlp", который, похоже, не соответствует реальному названию.

... ниже мой HTML..

Это также слишком сложно и, вероятно, неверно, хотя я сомневаюсь, что проблема здесь. На данный момент запустите JNLP по простой старой HTML-ссылке. Я предполагаю, что вы проводите тестирование на машине с 1.6+ Java, поэтому на этом этапе файл deployJava.js не требуется.

... через некоторое время приложение просто открывается, но когда я нажимаю на любую кнопку, они ничего не делают. Это похоже на то, как будто графический интерфейс показывает, но всей лежащей в основе логики нет. Есть идеи, в чем может быть проблема?

Без кода это немного сложно сказать. Но некоторые предварительные вопросы:

  1. Код проглатывает исключения на любом этапе? (Если так, исправьте это немедленно!)

  2. Что сообщается в консоли Java при запуске приложения? При отладке важно, чтобы консоль открывалась при каждом запуске апплета Java или приложения JWS. Видимость консоли настраивается через панель управления Java.

Другие вопросы по тегам