2010-01-17 141 views
6

我想要爲我的應用程序顯示自定義的destop圖標,但出於某種原因,無論我做什麼,都會顯示相同的默認java圖標。我已經嘗試了所有我能想到的事情,並將我的jnlp文件與其他圖標似乎可以正常工作的人進行了比較。根據我讀過的所有內容,應該可以正常工作。但當然,它不:使用JWS JNLP爲JavaFX應用程序創建桌面圖標

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

任何想法將不勝感激。

回答

1

我沒有具體的答案恐怕,但是Project MaiTai是一個用JavaFX編寫的開源應用程序,它有一個自定義的桌面圖標。

如果你還沒有這樣做,也許檢查MaiTai的JNLP代碼會給你一些指針。

1

有一個如何在JavaFX in Action書中這樣做的例子,如果你有權訪問它的話。您需要確保res/icon64x64.png文件實際上可以從應用程序所在的任何站點下載,相對於JNLP的位置。嘗試直接在瀏覽器中加載它以確保其可用/有效。

5

我想嘗試以下,依次是:

  1. 創建大小爲32×32的圖標並將其添加爲一個額外的<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. 請記住,您的圖片在你jnlp XML元素相對於訪問到您的codebase屬性

  4. 如果沒有這些工作,歡迎您進行比較你的JNLP爲one of mine that works

我意識到這個JNLP的東西是一種痛苦。希望這些爲你工作。

+0

謝謝埃裏克。我嘗試了你的建議,但目前爲止沒有喜悅。 我創建了快捷方式圖標,嘗試了gif,png和jpg格式,並使用了絕對和相對的uris。你有的看起來和我的一樣。最糟糕的部分是知道解決方案不可避免地會變得非常簡單。 JNLP的東西有點讓人頭疼,但我最終覺得它很酷。目前,我的偶像沮喪正在給我的JNLP興奮蒙上一層陰影。我將在本週末再看一遍,看看我能否弄清楚。 – mikewilliamson 2010-01-21 01:17:12

+0

我做的另一件可能會有所作爲的事情是爲系統可以重新調整的默認值創建一個256x256 png。如果你發佈你的整個JNLP,我可以看看你是否喜歡。 – 2010-01-21 17:17:50

+1

也許(默認)圖標已被緩存,所以您可能需要刷新現金,才能看到新的自定義圖標? (我不知道javaws如何處理圖標,但它讓我想起favicon/browser-cache的挫折......)。清除緩存:啓動javaws(「Java Application Cache Viewer」),通過編輯|打開「Java控制面板」首選項,按「刪除文件...」(在「常規」選項卡上)。 – netzwerg 2010-01-27 09:23:15

3

我想你的情況的問題是缺少的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> 
3

我們有同樣的問題。它一開始工作良好,然後隨着時間的推移(幾個Java更新?)它停止工作。當我開始解決問題時,我發現即使javaws發送它是gzip能力,我們的gzip響應也沒有處理。我爲這些圖標關閉了gzip,並且它再次正常工作。

相關問題