Fastgør en Java-applikation ved hjælp af Launch4j til Windows 7-proceslinjen

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger nu at pege på en Java-applikation på proceslinjen i Windows 7. Programmet lanceres med Launch4j. Programikonet vises korrekt, men højreklikker ikonet på proceslinjen viser kun en kontekstmenu med posten 'Luk vindue Msgstr '' 'Ingen menuindtastning til fastgørelse af applikationen på proceslinjen. Hvis du trækker EXE filen i proceslinjen, virker det heller ikke korrekt. Når du klikker på denne nye launcher i proceslinjen, springer et andet ikon på proceslinjen. [3]


Jeg fulgte instruktionerne af løsningerne på disse to spørgsmål for at løse problemet, men det hjalp ikke:



  • Fastgør en Java-applikation til proceslinjen i Windows 7

  • Brug JNA til at få/indstille programidentifikator



JNA ting fra andet spørgsmål/løsning kompilerer og gør ikke nogen undtagelse. Jeg kan læse app id efter at have indstillet det. Men jeg kan stadig ikke tappe applikationen på proceslinjen. ]]


Jeg har lavet en lille testapplikation på Github, der demonstrerer problemet:


https://github.com/kayahr/launch4jtest[6]


Ansøgningen bruger Maven som build system. Du skal bare køre mvn package, og du vil finde en ZIP-fil i målkatalogen, som indeholder EXE-filen og jna.jar'en, som er nødvendig for at indstille dette app-id. Udtryk dette ZIP til en mappe, dobbeltklik på EXE og prøv at knytte applikationen til proceslinjen, og du vil se problemet. [7]


Så hvad er der galt med denne ansøgning?

Bedste reference


N. B. Omskrevet nogle kommentarer oprindeligt i hovedposten som pr. Kayahrs anmodning :)


Du skal oprette en ikongenvej, der indeholder oplysninger om AppUserModelID . InnoSetup kan oprette en sådan ikongenvejning under [Icons] sektionen. Angiv programnavnet tildelt AppUserModelID via JNA. Foreslåede links til læsning:


Sådan oprettes .exe-fil til izpack installer .jar-fil


Launch4j, NSIS og duplikat pinnede Windows 7 proceslinje ikoner



  1. Det virker, når du trækker og slipper EXE-filen (ikke dens ikongenvej) i Windows 7-proceslinjen for at oprette et fastgjort ikon;

  2. Det fungerer, når du kører EXE-filen og senere vælger menuen 'pin til proceslinje' for at oprette et fastgjort ikon. Hvis du ikke sætter AppUserModelID , er det ikke muligt, selv det vil forårsage en underlig adfærd som at have javaw.exe 'ikon' på proceslinjen i stedet for dit exe-ikon siden Launch4J kalder den eksekverbare burk ved hjælp af javaw.exe (duplikeret pinned ikoner)



For at køre Windows-baserede installatørbygger under Linux henvises der som en vejledning:


http://katastrophos.net/andre/blog/2009/03/16/setting-up-the-inno-setup-compiler-on-debian/[10]


Ja, som nævnt af kayahr, fungerer denne Windows 7-funktion kun, hvis dens genvej med indlejret AppUserModelID forbliver intakt (dvs. det er ikke fjernet/slettet).