Создание иконки на рабочем столе с использованием JWS JNLP для приложения JavaFX - PullRequest
6 голосов
/ 17 января 2010

Я пытаюсь сделать так, чтобы для моего приложения отображался пользовательский значок destop, но по какой-то причине, независимо от того, что я делаю, отображается тот же значок java по умолчанию. Я перепробовал все, что только мог придумать, и сравнил свой файл jnlp с другими, чьи иконки, кажется, работают нормально. По всему, что я прочитал, должно работать нормально. Но, конечно, это не так:

<information>
    <title>MikesApp</title>
    <vendor>Mike</vendor>
    <homepage href="http://www.mikesapp.com/"/>
    <description>Mikes App.</description>
    <icon kind="shortcut" href="res/icon64x64.png" width="64" height="64"/>
    <offline-allowed/>
    <shortcut>
        <desktop/>
    </shortcut>
</information>

Любые идеи будут с благодарностью.

Ответы [ 5 ]

5 голосов
/ 19 января 2010

Я бы попробовал следующее, по порядку:

  1. Создайте иконку размером 32x32 и добавьте ее как дополнительную <icon kind="shortcut".... spec говорит, что размер используется для иконок на рабочем столе.
  2. Используйте значок 64x64 в качестве «по умолчанию». Например, ваши новые элементы <icon> будут:

    <icon href="res/icon64x64.png" width="64" height="64"/>
    <icon kind="shortcut" href="res/icon32x32.png" width="32" height="32"/>
    <icon kind="shortcut" href="res/icon64x64.png" width="64" height="64"/>
    
  3. Помните, что ваши изображения доступны относительно вашего атрибута codebase в элементе jnlp xml

  4. Если ничего из этого не работает, вы можете сравнить вашу JNLP с моей, которая работает .

Я понимаю, что этот материал JNLP - своего рода боль. Надеюсь, что одна из этих работ для вас.

3 голосов
/ 21 ноября 2012

У нас была такая же проблема. Сначала он работал нормально, а затем (через несколько обновлений Java?) Перестал работать. Когда я приступил к устранению неполадок, я обнаружил, что, хотя javaws передает, что он поддерживает gzip, наш ответ gzip не был обработан. Я отключил gzip для этих иконок, и он снова заработал.

3 голосов
/ 10 ноября 2010

Полагаю, проблема в вашем случае заключается в отсутствии атрибута CODEBASE. Смотрите один рабочий фрагмент:

<?xml version="1.0"?>
<jnlp spec="1.5+" 
      codebase="http://www.sweethome3d.com/" 
      href="SweetHome3D.jnlp">
  <information>
    <title>Sweet Home 3D</title>
    <vendor>eTeks</vendor>
    <homepage href="http://www.sweethome3d.com/"/>
    <description>Sweet Home 3D</description>
    <description kind="short">Arrange the furniture of your house</description>
    <icon href="SweetHome3DIcon.gif"/>
    <icon kind="splash" href="SweetHome3DSplashScreen.jpg"/>
    <offline-allowed/>
    <shortcut online="false">
      <desktop/>
      <menu submenu="eTeks Sweet Home 3D"/>
    </shortcut>
    <association extensions="sh3d sh3l sh3f sh3t sh3p" 
                 mime-type="application/SweetHome3D"/>
  </information>
1 голос
/ 19 января 2010

Пример того, как это сделать, можно найти в книге JavaFX в Action, если у вас есть доступ к этому.Вы должны убедиться, что файл res / icon64x64.png действительно доступен для загрузки с любого сайта, на котором размещено приложение, относительно местоположения JNLP.Попробуйте загрузить его прямо в браузере, чтобы убедиться, что он доступен / действителен.

1 голос
/ 18 января 2010

Боюсь, у меня нет конкретного ответа, но Project MaiTai - это приложение с открытым исходным кодом, написанное на JavaFX, с собственным значком на рабочем столе.

Если вы еще этого не сделали, возможно, проверка кода JNLP для MaiTai даст вам несколько советов.

...