2012-03-02 2 views
0

Как я могу исправить эту ошибку? У меня есть разнесенное разнесение со всеми файлами jar, включенными в мой веб-сервер. Но как только я нажимаю icon.jnlp, он говорит об ошибке.JNLP - Как я могу развернуть приложение, которое запускает и создает значок рабочего стола для запуска a.jar?

icon.jnlp:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<jnlp codebase="http://localhost:007/dist" href="icon.jnlp" spec="1.0+"> 
    <information> 
    <title>Sample</title> 
    <vendor>Sample</vendor> 
    <homepage href=""/> 
    <description>Sample</description> 
    <description kind="short">Sample</description> 

    <icon href="load.png" kind="splash"/> 
    <icon href="logo.png" kind="default"/> 

    <shortcut online="false"> 
     <desktop/> 
     <menu submenu="Sample"> 
      <menu submenu="Sample Managing System"/> 
     </menu> 
    </shortcut> 
    <offline-allowed/> 
    </information> 

    <security> 
    <all-permissions/> 
    </security> 

    <resources> 
    <j2se version="1.5+"/> 
    <jar eager="true" href="http://localhost:007/dist/a.jar" main="true"/> 
    </resources> 

    <application-desc main-class="main.main"> 
    </application-desc> 

</jnlp> 

enter image description here

Развейте:

1) Скачать JAR Maker (работает в Linux, Windows)

enter image description here

  • Sing все банки сторонних
  • ваши Deploy банки

  • каталог Вывод:/вар/TMP/проект/расстояние

  • перейдите на вкладку синьора JAR

    • вход jar file: a.jar
      • Jarsigner местоположение: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/jarsigner
      • файл хранилища ключей
      • , если ни одна клавиша не была создана> нажмите генерировать хранилище ключей - расположение Keytool:/USR /lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/keytool - выходной файл хранилища ключей:/вар/TMP/хранилище ключей - хранилище ключей псевдоним: rememberthisname - открытый ключ: 123456 - секретный ключ: 123456 - год годности: 0 означает 6 месяц - идентификаторы хранилища - действительная информация ... - нажмите кнопку генерации keystore - он создаст/var/tmp/keyst руды и java.key.public и java.key
    • аутентификации хранилище ключей

      • хранилище ключей псевдоним: rememberthisname
      • открытый ключ: 123456
      • закрытый ключ: 123456
    • клик знак JAR! > Покажет, если не удалось или успех

Повторите этот процесс для всех других JAR-файлов подписать !!

2) Развертывание на посадочном пространство

3) Убедитесь, что вся ваша третья сторона ссылается

Перед:

<resources> 
    <j2se version="1.5+"/> 
    <jar eager="true" href="http://localhost:007/dist/a.jar" main="true"/> 
    </resources> 

После:

<resources> 
    <j2se version="1.5+"/> 
    <jar eager="true" href="a.jar" main="true"/> 
    <jar eager="true" href="lib/b.jar" main="flas"/> 
    <jar eager="true" href="lib/c.jar" main="flas"/> 
    <jar eager="true" href="lib/d.jar" main="flas"/> 
    <jar eager="true" href="lib/e.jar" main="flas"/> 
    <jar eager="true" href="lib/f.jar" main="flas"/> 
    <jar eager="true" href="lib/g.jar" main="flas"/> 
    <jar eager="true" href="lib/h.jar" main="flas"/> 
    <jar eager="true" href="lib/i.jar" main="flas"/> 
    </resources> 
+1

Этот скриншот бесполезен, я вижу. Нажмите кнопку «Сведения», и в нем появится диалог с вкладками. Скопируйте/вставьте * текст * с каждой вкладки в качестве редактирования на свой вопрос. Кроме того, обязательно проверьте JNLP с помощью [JaNeLA] (http://pscode.org/janela/). –

+0

@AndrewThompson: Отличный инструмент :) Я нашел проблему, я изменил путь и решил, что я нашел неподписанную проблему, которая была решена. Но мое приложение использовало внешние другие файлы jar. Сейчас они не работают. Myjar.jar работает с вашими советами. Но Myjar.jar использует другие обертки, такие как Others1.jar Others2.jar там funtionality не работает, когда я запускаю Myjar.jar. – YumYumYum

+0

Должен ли я подписать теперь все мои другие сторонние банки? Если он запускается через JNLP? – YumYumYum

ответ

2

Be обязательно проверьте JNLP, используя JaNeLA.

Должен ли я подписать сейчас все мои другие сторонние банки?

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

Но тогда вы можете столкнуться с «смешением» подписанных предупреждений & неподписанных ресурсов. Я не уверен, применяется ли это между расширениями. Есть способы обойти эти предупреждения, но я думаю, что проще разместить все подписанные Jars, независимо от уровня безопасности расширения, в котором они используются.

+0

Сначала я все банки разворачивал локальную систему, но не смог. Затем я подписал все банки и разворачивался в локальную систему, все еще не удалось. Теперь я не уверен, как его решить. Myjar.jar запущен красиво. Но сторонние банки не загружаются. – YumYumYum

+0

YumYumYum

+1

Для простоты перечислите все Jars в JNLP. Обратите внимание, что по 'extension' я имел в виду другие JNLP-файлы, которые ссылаются на ваш основной JNLP. Но давайте сделаем это простым на данный момент и перечислим каждый Jar в главном JNLP в одном элементе 'jar'. Только одна банка должна быть помечена как «main =» true ». Перейдите по ссылкам в [JWS info. стр.] (http://stackoverflow.com/tags/java-web-start/info), они предоставляют подробную информацию о том, что означает файл JNLP, и как все это работает. –