web-dev-qa-db-ja.com

Javaアプリケーションアイコンの代わりに表示されるアイコン; install4jでインストール

Javaアプリケーションをinstall4j経由でインストールしました。デスクトップショートカットには、.desktopファイルで設定された正しいアプリケーションアイコンが表示されますが、起動すると、アプリケーションアイコンがアプリケーションに表示されません。 dock。デフォルトのJavaアイコンがその代わりに表示されます。

これはデスクトップでの表示です。

On the Desktop

DockではJavaアイコン:

On the Dock

なぜだかわかりません。ドックのアイコンにカーソルを合わせると正しいアプリケーション名が表示されません。代わりにJavaランチャーと名付けられています。

。デスクトップ:

#!/usr/bin/env xdg-open
[Desktop Entry]
Type=Application
Name=NMRViewJ
Exec="/home/issac/NMRViewJ/NMRViewJ"
Icon=/home/issac/NMRViewJ/.install4j/NMRViewJ.png
StartupWMClass = Sun-awt-X11-XFramePeer
Categories=Application;
2
iac786786

これは、install2j 8.0で約2週間で修正される予定です(ソース:install4jを開発している会社で働いています)。

主な問題は、AWTウィンドウのWMClassプロパティがメインクラスに設定されていることです。つまり、メインクラスはアプリケーションに対して一意である必要がありますが、install4jは独自のメインクラスを挿入します。メインクラスは7.0までは常に同じです。回避策として、AWTツールキットの内部状態を反映的に変更できます。

Class<?> toolkitClass = Toolkit.getDefaultToolkit().getClass();

if (toolkitClass.getName().equals("Sun.awt.X11.XToolkit")) {
    Field awtAppClassName = toolkitClass.getDeclaredField("awtAppClassName");
    awtAppClassName.setAccessible(true);
    awtAppClassName.set(null, "<my unique application name>");
}

Install4j 8.0では、一意のメインクラスが生成され、生成された.desktopファイルには対応するStartupWMClassエントリが含まれます。

5
Ingo Kegel