Avatar billede riversen Nybegynder
19. juni 2001 - 18:08 Der er 9 kommentarer og
1 løsning

Jar eller hvad jeg nu skal bruge...?

Hej,

når nu jeg har lavet et lille java program, har jeg selvfølgelig nogle class og java filer.

Hvad skal jeg gøre for at lave det som et selvstændigt program. Altså ligesom man laver en exe fil i VB. Skal jeg i gang med at lave en jar fil? hvad skal der være i den?
Så vidt jeg ved skal jre i hvert fald være installeret på pc\'en, som programmet skal bruges på.

Helt fra bunden tak...hvordan og hvorfor...

/Rene
Avatar billede logical Nybegynder
19. juni 2001 - 18:12 #1
Lav en fil, som indeholder følgende (f.eks. kaldet project.mf):

Main-Class: dk.riversen.MyClass<return>


Hvor dk.riversen.MyClass selvfølgelig er den klasse, som du vil have lagt ind. Bemærk, der SKAL være linieskift i sidste linie.

Opret en jar fil således:

jar cvfm MyJar.jar project.mf dk/riversen/*.class

Åbn jarfilen med winzip og kontroller, at klasserne ligger rigtigt.

Nu burde du kunne dobbeltklikke på jar filen (hvis dit jre er installeret korrekt), og filen eksekverer.

Prøv med et lille eksempel først.
Avatar billede rasmusw Nybegynder
19. juni 2001 - 18:12 #2
Hvis du vil lave et selvstændig program, som en exe fil fra VB, så kan man jo ikke kræve at folk har JRE installeret. - Så er det jo ikke selvstændigt.
Der findes programmer der kan compile class-filer om til exe-filer. Jeg kender ingen til Windows, men gnu-gcc skulle kunne gøre det (har dog aldrig prøvet).
Avatar billede logical Nybegynder
19. juni 2001 - 18:13 #3
P.s. Man kan sagtens pakke .java filerne med ind, men det er kun .class filerne der behøves i din jar fil sammen med det \"manifest\" vi lavede.
Avatar billede riversen Nybegynder
19. juni 2001 - 18:23 #4
hmmm...er ikke helt med og får en FileNotFoundException.

Hvorfor laver jeg den første fil...hvad gør den?

mine class filer ligger i d:\\datanom\\progra~1\\obliga~1\\*.class

hvordan skal det hele så se ud?
Avatar billede logical Nybegynder
19. juni 2001 - 18:34 #5
Når man pakker filer ind i en jar fil, så ligger de der bare.

Den første fil vi laver er et såkaldt manifest, en beskrivelse af en række forskellige ting, som kunne vedrøre jarfilen (afhængigheder, versioner, sikkerhed, etc). Hvis man i sit manifest har det entry, der hedder Main-Class, så ved man pr. definition, hvilken fil der starter det hele, og den kan derfor kaldes fra kommandolinien med:

java -jar myjar.jar

Og så starter det bare.

Hvis du går ned i biblioteket D:\\datanom\\progra~1\\obliga~1
Laver den dersens fil, og kalder den f.eks. projekt.mf
Så skriver du følgende på kommandolinien:
jar cvfm myjar.jar project.mf *.class

Jeg går ud fra, dine klasser ikke ligger i nogen package, ikke sandt ?

argumenterne til jar kommandoen er følgende:
c -> create
v -> verbose(Så vi kan se hvad vi laver)
f -> filename (navnet på jar filen kommer umiddelbart efter argumenterne)
m -> inklude manifest (Står efter jar filnavnet)
Derefter angives filnavn, manifest filnavn, og endelig biblioteket og/eller klasser, som skal pakkes ind.


Det er rigtigt, at JRE skal være installeret på den maskine, som kører programmet, men med en .exe fil, skal der alligevel være installeret windows på den maskine man vil have det kørende på, og en JRE fylder \"kun\" 12-16Mb.

Man kan også lave det om til .exe filer direkte, men det kan medføre andre problemer
Avatar billede riversen Nybegynder
19. juni 2001 - 18:47 #6
ok, har nu fået lavet jar filen, men får en fejl om at main class ikke kan findes.

min manifest fil ser såles ud

Main-class: testin~1.class

har husket enter...

og jeg har tjekket et filen er rigtig.

Du kan evt. skrive over icq\'en, for real time hjælp...19463099
Avatar billede logical Nybegynder
19. juni 2001 - 18:59 #7
Bruger desværre ikke icq :-(

Din mainclass attribut er forkert, da det skal være java notation, og uafhængig af filsystemets visning, dvs.

Main-Class: testing

Ellers drop mig en mail (evt med source etc) og jeg skal rette det til.
Avatar billede riversen Nybegynder
19. juni 2001 - 19:10 #8
det er sendt...
Avatar billede riversen Nybegynder
19. juni 2001 - 19:11 #9
rasmusw: så vidt jeg ved kræver man fx også i vb at runtime filerne er installeret, så sammenligningen er vis ok...
Avatar billede logical Nybegynder
19. juni 2001 - 19:23 #10
Rettet.

Pak filerne relativt, dvs.

jar cvfm myjar.jar project.mf *.class

IKKE

jar cvfm myjar.jar project.mf D:\\datanom\\...\\*.class
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