Avatar billede stigc Nybegynder
30. maj 2004 - 21:17 Der er 12 kommentarer og
1 løsning

Jar start på Windows

Fra hvilken version af Java eksekveres en Jar fil på Windows platformen når man dobbeltklikker på den? Hvordan ser en bat fil ud, der kan starte en Jar fil på tidligere versioner (uafhængig af hvor Java er installeret!)?
Avatar billede arne_v Ekspert
30. maj 2004 - 21:27 #1
Det har vist ikke noget med version at gøre - det har den kunnet i mange mange år.

Men det er forbløffende tit at der er problemer med det.

1)  Det skal være en executable jar file (med et Main-Class direktiv i
    manifestet)

2)  Så skal extension .jar være assiceret med noget a la:

    "C:\Program Files\Java\j2re1.x.x\bin\javaw.exe" -jar "%1" %*
Avatar billede stigc Nybegynder
30. maj 2004 - 22:54 #2
Jeg mener ikke man kan i 1.2 og tidligere. Jeg vil bare have det bekræftet.

Min Jar fil har en manifest med en main class definition. Den virker fint på min maskine med dobbeltklik. Jeg kører 1.3.

Jeg ønsker at lave en bat fil, brugere før 1.3 kan bruge til at starte applikationen med.

Noget a la

start C:\Program Files\Java\j2re1.x.x\bin\javaw.exe -jar xxxxx.jar

Men jeg ved jo ikke hvor deres javaw ligger, og tænkte at der måtte være en løsning til det.
Avatar billede arne_v Ekspert
30. maj 2004 - 23:06 #3
Det er noget tid siden jeg kørte 1.2.2

Jeg kan umiddelbart kun se 2 mulige løsninger på sti problemet:

* definere at javaw.exe skal være i PATH så .bat filen kan bruge den uden
  eksplicit path

* lade installations programmet søge efter og java dir og generere .bat filen
Avatar billede stigc Nybegynder
30. maj 2004 - 23:10 #4
Du kender ikke til en bat fil der søger efter den?
Avatar billede arne_v Ekspert
30. maj 2004 - 23:14 #5
Nej

Men du kan naturligvis altid lade bat filen gætte:

if exist C:\aaa\javaw.exe ...
if exist C:\bbb\javaw.exe ...
if exist C:\ccc\javaw.exe ...
Avatar billede stigc Nybegynder
31. maj 2004 - 00:17 #6
Ok tak for hjælpen, point?
Avatar billede stigc Nybegynder
31. maj 2004 - 00:20 #7
Kender du noget til at fange et vindues hwnd fra java på Windows?

http://www.codeproject.com/java/javacom.asp virker op til 1.3

Men ikke på 1.4 og sikkert heller ikke 1.5. Men jeg har virkelig brug for det!
Avatar billede arne_v Ekspert
31. maj 2004 - 08:26 #8
jo tak
Avatar billede arne_v Ekspert
31. maj 2004 - 08:27 #9
Du må selvfølgelig kunne gøres via JNI og FindWindow.

Men det foresvæver mig at jeg har set noget smart engang.

Jeg prøver lige at lede.
Avatar billede arne_v Ekspert
31. maj 2004 - 09:10 #10
Det trick jeg huskede var følgende:

sun.awt.SunToolkit tk = (sun.awt.SunToolkit) Toolkit.getDefaultToolkit();
int hwnd = tk.getNativeWindowHandleFromComponent(anyswingcomponent);

som er lidt fixere end det du har fundet.

Men det virker heller ikke i 1.4 !
Avatar billede arne_v Ekspert
31. maj 2004 - 09:15 #11
Den portable løsning på tværs af Java versioner må være at bruge JNI.
Avatar billede stigc Nybegynder
31. maj 2004 - 13:59 #12
Jeg har allerede en løsning med FindWind i c. Problemet er at den bruger title barens tekst til at finde vinduet. Et JWindow har ikke nogen title.
Avatar billede arne_v Ekspert
31. maj 2004 - 14:13 #13
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester