29 votes

Épingler un exécutable Java (avec launch4j) dans la barre des tâches de Windows 7

Après avoir passé une demi-journée à la recherche et à essayer, je suis finalement abandonner.

J'ai une application java qui j'ai créer un exécutable jar (pour inclure d'autres libs et se contenter d'un seul fichier jar). Avec launch4j et la runnable jar je suis en train de faire un exécutable "MyApp.exe".

L'exécutable ist fonctionne très bien, mais je veux de l'épingler dans ma barre des tâches windows 7. Pour l'instant, j'ai juste la barre des tâches "Fermer la fenêtre".

Après la lecture et de mettre en œuvre les solutions suivantes avec JNA

mon Application affiche c'est "l'Application du Modèle User ID" correctement dans l'interface graphique (juste pour le test de but).

MAIS: mon programme est présenté comme "javaw.exe" dans le Gestionnaire des Tâches et je n'ai toujours pas l'épingler à la barre des tâches, même si j'ai mis le launch4j option "personnaliser le nom du processus et XP style manifeste".

Informations d'arrière-plan: je travaille avec windows 7 compte admin et je ne veux pas l'application sur le besoin des droits d'admin.

De toute façon, si je démarre l'application "en tant qu'administrateur" dans le menu contextuel et confirmer le message contrôle de compte d'utilisateur, je peux maintenant épingler à la barre des tâches. MAIS: même si j'ai mis "l'Application du Modèle User ID" correctement, windows veut toujours à la broche "javaw.exe" même si mon programme est maintenant affichée comme "MyApp.exe" dans le gestionnaire des tâches.

Je suis totalement confus. Mais je ne suis évidemment pas le seul à avoir ces problèmes. => Voir les derniers commentaires de Grégoire Pakosz réponse en Utilisant la JNA pour obtenir/définir l'identificateur de l'application

Dernières questions:

  1. Gregory Pakosz façon avec JNA pour définir "l'Application du Modèle User ID" ( http://stackoverflow.com/a/1928830/1128689 ) est de travailler pour moi. Mais quand même, windows reconnaît mon application comme un exemple de "javaw.exe". Que dois-je faire?
  2. N'a peut-être quelques fenêtres ou de mise à jour java casser quelque chose ici?
  3. Dois-je vraiment exécuter mon application avec des droits d'utilisateur élevés? Je ne veux vraiment pas...
  4. Peut-il y avoir plus d'options dans launch4j qui je dois le mettre?
  5. Dois-je utiliser un fichier de manifeste dans launch4j?

1voto

Reg Points 422

J'ai obtenu ce travail en créant un Exe à partir d'un pot exécutable avec l'aide de JSmooth .Pinned il à la barre des tâches, et l' ai exécuté sans problème.

J'espère que cela t'aides

1voto

Kishore Points 431

Recherchez-vous cela, que j'ai utilisé dans mon application pour afficher l'application Java en cours d'exécution sur la barre des tâches de Windows.

 SystemTray systemTray = new SystemTray(composite, parent.getShell(), parent.getDisplay(), "My Application");
systemTray.makeSystemTray();
 

1voto

Paul Taylor Points 1200

Pas de problème non plus avec winrun4j , qui est plus récent et plus facile à utiliser que Jsmooth

1voto

Rekin Points 3100

La racine de la cause: javaw est enregistré comme un processus Hôte (dans le registre de Windows). Le raccourci le comportement est probablement causée par la suivante (source: Utilisateur de l'Application des Id de Modèle (AppUserModelIDs))

Défini par l'Application et Définis par le Système AppUserModelIDs

Certaines applications ne sont pas déclarer explicitement AppUserModelID. Ils sont facultatif. Dans ce cas, le système utilise une série d'heuristiques pour attribuer un interne AppUserModelID.

[...]

si le processus a été lancé par le biais d'un raccourci qui contient de lancement arguments (généralement le contenu de la cible de l'hôte comme la "demande"), le système peut déterminer l'identité et l'application peut être épinglé et relancé.

Sur le Processus d'Hôte de comportement:

L'enregistrement d'une Application en tant que Processus Hôte

Une application peut définir le IsHostApp entrée de registre à cause de l'exécutable du processus considéré comme un processus hôte par la barre des tâches. Cela affecte son regroupement et à défaut de Sauter des entrées de la Liste.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X