Avatar billede lsskaarup Nybegynder
05. august 2001 - 14:32 Der er 17 kommentarer og
1 løsning

Hvordan kører man en .jar-fil

Hvordan kører man en .jar-fil uden for udviklingsmiljøet.
Avatar billede lbhansen Nybegynder
05. august 2001 - 14:33 #1
Hvis du har jdk 1.2 eller derover kan du bruge
java -jar dinfil.jar
Avatar billede lsskaarup Nybegynder
05. august 2001 - 14:39 #2
Fra kommandovinduet ?
Avatar billede lbhansen Nybegynder
05. august 2001 - 15:48 #3
ja. Det kræver bare, at du har din jre liggende i din path
Avatar billede logical Nybegynder
05. august 2001 - 20:04 #4
Hvilket selvfølgelig lige kræver et ordentligt manifest, gør således:

Lav en fil (f.eks. manifest.txt), som indeholder følgende:

Main-Class: dk.isskaarup.MyClass<CR>    << Eller hvad den nu hedder

Du må endelig huske det sidste linieskift, det skal være der.

Pak dine klasser ind med:

jar cvfm myjar.jar manifest.txt dk/*  << Eller alle de klasser, du skal bruge

Så kan du starte den med java -jar myjar, eller du kan dobbeltklikke på den i dit vinduesmiljø, hvis det er rigtigt konfigureret
Avatar billede lsskaarup Nybegynder
06. august 2001 - 00:06 #5
logical: det forstod jeg ikke helt.

Hvis mit program hedder PrintIT, skal jeg altså skrive:

\"Mani-Class: dk.lsskaarup.PrintIT.jar
jar cvfm PrintITJFrame.jar manifest.txt dk/lsskaarup/PrintIT.jar

osv. for alle mine klasser.\"

dk.lsskaarup.MyClass, hvad betyder det ?

og når jeg skal pakke mine klasser ind er \"dk/*\" så pathen til mit program ?
Avatar billede logical Nybegynder
06. august 2001 - 07:27 #6
Det er korrekt, at alt det dk.isskaarup. er noget med pakker, men det kan du læse på lidt senere, i dit eksempel gør følgende:

i manifest.txt:
Main-Class: PrintIT

(Husk linieskiftet)

derefter
C:> jar cvfm PrintITJFrame.jar manifest.txt *.class
Avatar billede lsskaarup Nybegynder
06. august 2001 - 14:41 #7
Nu har jeg skrevet det, og får følgende fejl, når jeg eksporter:

The project Main-Class: PrintIT was not found.
The project C:\\Java\\Programs\\ jar cvfm PrintITJFrame.jar manifest.txt *.class was not found.
Avatar billede logical Nybegynder
06. august 2001 - 15:26 #8
Du skal stå i roden af dit bibliotek, hvor du har dine filer, f.eks.
C:\\source>dir *.class

PrintIT.cla  234 14:30  PrintIT.class
    0 bytes
    1 bytes available

C:\\source>jar cvfm PrintITJFrame.jar manifest.txt *.class

Det er vigtigt, at du står i det rigtige bibliotek, for at det virker korrekt.
Avatar billede lsskaarup Nybegynder
06. august 2001 - 18:11 #9
Jeg kan stadigvæk ikke få det til at virke.

Lad os lige skære i helt u i pap, så kan det være jeg kan få det til at fungere.

Jeg arbejder i Visual Age, og når jeg eksporter kan jeg få programmet til selv at leve en manifest-fil. Så skulle det jo gerne være i orden.

Hvad så ?
Avatar billede lbhansen Nybegynder
06. august 2001 - 22:57 #10
Jeg er ikke sikker på, at VAJ selv gør at du kan eksekvere din applikation.
Hvis ikke java -jar PrintITJFrame.jar virker, så gør den ikke.

Så kan du prøve at eksportere til et directory, og så stille dig i kataloget, og så selv lave din manifest, som Logical foreslår
Avatar billede lsskaarup Nybegynder
06. august 2001 - 23:21 #11
Jeg får nu en fejl melding om at versionen er 1.2 og det skulle være 1.3. Jeg har dog installeret denne, og tilføjet den til pathen.

Derudover siger den at den ikke kan finde java.dll og java 2 runtime enviroment.

Kan jeg gøre noget så computeren fatter at jeg bruger v. 1.3 ?
Avatar billede lsskaarup Nybegynder
07. august 2001 - 00:00 #12
Nå, efter at have geninstalleret jdk 3. gang, lykkedes det vist at få computeren til at fatte det. Nu får jeg nemlig en anden fejl, den siger at den ikke kan loade main-class manifest attributter.

Det manifest som VAJ har lavet ser sådanne ud:

\"printit

printit.FørNuJFrame
printit.TekstJFrame
printit.TilbudJFrame
printit.UdsalgJFrame
printit.AboutJFrame
printit.PrintITJFrame

printit.FørNuJFrame
printit.TekstJFrame
printit.TilbudJFrame
printit.UdsalgJFrame
printit.AboutJFrame
printit.PrintITJFrame\"

Kan det bruges ?
Avatar billede logical Nybegynder
07. august 2001 - 06:19 #13
Nej, andet end at den giver navnet på din main klasse, så:

Main-Class: printit.PrintITJFrame

jar cvfm printit.jar manifest.txt printit/*
Avatar billede lsskaarup Nybegynder
08. august 2001 - 17:38 #14
Jeg har nu en manifest-fil med indholdet \"Main-Class: printit.PrintITJFrame\"

Når jeg så skriver \"jar cvfm printit.jar manifest.txt printit/*\" får jeg følgende fejlbesked:

java.io.IOException: line too long
      at java.util.jar.Attributes.read(Attributes.java:336)
      at java.util.jar.Manifest.read(Manifest.java:161)
      at java.util.jar.Manifest.<init>(Manifest.java:56)
      at sun.tools.jar.Main.run(Main.java:125)
      at sun.tools.jar.Main.main(Main.java:904)

Hvad kan udlede af det ?
Avatar billede logical Nybegynder
09. august 2001 - 09:29 #15
Tja, at det absolut vil drille dig.

Jeg har et forslag. Exporter alle dine class filer til et bibliotek, zip det op og mail det til mig, så skal jeg nok få det til at virke. Ok?
Avatar billede lsskaarup Nybegynder
09. august 2001 - 11:05 #16
Ok, skal jeg bare mail til nbn@logical.dk ?
Avatar billede logical Nybegynder
10. august 2001 - 08:45 #17
Ja, fint nok!
Avatar billede lsskaarup Nybegynder
17. august 2001 - 02:55 #18
Med hjælp fra logical har jeg nu fået løst mit problem.
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