Avatar billede Slettet bruger
18. januar 2008 - 09:12 Der er 22 kommentarer og
1 løsning

Problem med eksekverbare jar-fil

Jeg har prøvet at lave en eksekverbar jar-fil, men når jeg dobbeltklikker på den, siger den "Could not find the main class. Program will exit" Nogen der kan fortælle, hvad jeg gør forkert i nedenstående?
1) Jeg opretter en mappe i dokumenter, der hedder "test"
2) Jeg kopirer en simpel class-fil, "hejverden.class", over i "test"
3) Jeg opretter "manifest.txt", hvor der står:
Manifest-Version: 1.0
Main-Class: hejverden
(+et linieskift i bunden)
- og gemmer den i "test"
4) Jeg kopirer filerne "jar og jli.dll" over i "test", for at kunne bruge jar-kommandoen
5) Så åbner jeg kommando-prompten og skriver "jar cvfm program.jar manifest.txt hejverden.class"
6) Den opretter "program.jar" i "test"
7) Når jeg så dobbeltklikker på den, skriver den bare: "Could not find the main class. Program will exit"

Jeg er nybegynder og forstår ikke, hvad der er galt - hjælp tak!
Avatar billede arne_v Ekspert
18. januar 2008 - 15:06 #1
Bruger du packages ?

Er class name (ikke filen men class name i filen) alt smaa bogstaver ?
Avatar billede Slettet bruger
18. januar 2008 - 19:15 #2
I starten af hejverden.class havde jeg skrevet: "package javaapplication1;"
- det har jeg fjernet nu og lavet en ny jar-fil, men når jeg dobbeltklikker på den, sker der ikke noget?
Avatar billede Slettet bruger
18. januar 2008 - 19:15 #3
Og ja - alt med små bogstaver
Avatar billede arne_v Ekspert
18. januar 2008 - 19:32 #4
Det kunne ogsaa have vaeret loest med:

Main-Class: javaapplication1.hejverden
Avatar billede arne_v Ekspert
18. januar 2008 - 19:37 #5
proev og lav en:

jar tvf program.jar

saa vi kan se om indholdet er OK
Avatar billede Slettet bruger
18. januar 2008 - 19:54 #6
Så skriver den:"0 Fri Jan 18 19:50:20 CET 2008 META-INF/
              94 Fri Jan 18 19:50:20 CET 2008 META-INF/MANIFEST.MF
              562 Fri Jan 18 19:38:06 CET 2008 hejverden.class"
- jeg kan desværre ikke være på mere for idag
Avatar billede arne_v Ekspert
18. januar 2008 - 19:56 #7
Den ser OK ud.

Det er vel ikke en console app ?
Avatar billede Slettet bruger
18. januar 2008 - 21:12 #8
(Kunne alligevel godt være på idag)
Jeg ved ikke, hvad en console app er, men jeg oprettede den i Netbeans:
Netbeans->New file->Java->Java class->hejverden.class

(Den kommer stadig med beskeden: "Could not find the main class. Program will exit", når jeg dobbeltklikker på jar-filen - kan der være problemer med "manifest.txt")
Avatar billede arne_v Ekspert
20. januar 2008 - 21:30 #9
Må vi se toppen af kode ?

Kunne du evt. prøve at køre jar filen i en kommando prompt ?
Avatar billede Slettet bruger
21. januar 2008 - 07:33 #10
Det er et meget simpelt program:

public class hejverden
{
    public static void main(String[] arg)
    {
        System.out.println("Hej verden");
    }
}

Når jeg starter den i kommandoprompten skriver den: "Wrong name: javaapplication1/hejverden" og så en hel masse fejl-koder
Avatar billede arne_v Ekspert
21. januar 2008 - 19:38 #11
Det ser ud som om du ikke har genoversat efter du har slettet package linien !
Avatar billede Slettet bruger
21. januar 2008 - 20:18 #12
Nu skriver jeg det helt fra starten af, så du kan se, hvad jeg gør forkert:

- I Netbeans opretter jeg en .class-fil, der hedder "hejverden.class"
- Jeg kopirer den over i en mappe, som jeg kalder "test", der ligger i:
  C:\Documents and Settings\Alexander\Dokumenter\test>
- Jeg laver "manifest.txt", der indeholder: "Manifest-Version: 1.0
                                            Main-Class: hejverden
                                            (linieskift)"
  -og gemmer den i "test"

- Jeg kopirer "jar" og "jli.dll" over i "test"
- Jeg højreklikker på "test" og trykker på "open command window here"
- I den kommandoprompt der kommer op, skriver jeg: jar cvfm program.jar manifest.txt  hejverden.class
- Den laver en jar-fil - som ikke virker!

(Jeg har genoversat efter, at jeg har slettet "package")

Tak fordi du gider, give dig tid til at hjælpe :-)
Avatar billede arne_v Ekspert
21. januar 2008 - 20:27 #13
Er fejlen stadig "Wrong name: javaapplication1/hejverden" ?
Avatar billede Slettet bruger
21. januar 2008 - 20:35 #14
Ja - hvis man kører den via kommandoprompt:

Exception in thread "main" java.lang.NoClassDefFoundError: hejverden <wrong name: javaapplication1/hejverden>
Og så en hel masse fejlkoder

Hvis man dobbeltklikker på den:

"Could not find the main class. Program will exit."
Avatar billede arne_v Ekspert
21. januar 2008 - 20:48 #15
Slet package linien i kilde koden, recompile, kopier class filen igen og rebyg jar filen.
Avatar billede Slettet bruger
22. januar 2008 - 07:29 #16
Nå.... det var det, du mente!

YES! - Nu virker den, når jeg kører den via kommandoprompt!

- Når jeg dobbeltklikker på jar-filen, sker der ikke noget, men der kommer heller ikke nogen fejlmeddelelse?
Avatar billede arne_v Ekspert
22. januar 2008 - 15:27 #17
Proev og koer den i kommando prompt.

Er det en swing app eller en console app ?
Avatar billede Slettet bruger
22. januar 2008 - 15:35 #18
DET VIRKER! DET VIRKER! DET VIRKER! DET VIRKER! DET VIRKER!

Jeg prøvede at lave et andet lille program, hvor der var noget swing med i:
"String str = javax.swing.JOptionPane.showInputDialog("Indtast dit gæt");"
Den viser det med "swing", men ikke det med "System.out.println();"
- hvordan kan det være?
Avatar billede Slettet bruger
22. januar 2008 - 15:37 #19
Når jeg kører den via kommandoprompt, kommer "System.out.println();" også med
?????
Avatar billede Slettet bruger
22. januar 2008 - 15:47 #20
Jeg ved ikke helt præcist, hvad swing app og console app betyder, men jeg tror, at det er en concole app (måske!)
Avatar billede arne_v Ekspert
22. januar 2008 - 15:53 #21
En console app bruger System.out.println og andre metoder til input-output.

Paa windows kommer Java med en java.exe til at koere console apps med og en javaw.exe
til at koere GUI apps med.

Default associerers .jar filer med javaw.exe !

----

Normalt vil jeg sige:

1)  hvis du laver console app saa koer dem i en kommando prompt

2)  hvis du vil dobbelt klikke paa jar filer saa lav en Swing app
Avatar billede Slettet bruger
22. januar 2008 - 15:58 #22
Okay!
Lægger du et svar - det har du ærligt fortjent!
Tak for hjælpen!!!!
Avatar billede arne_v Ekspert
22. januar 2008 - 16:26 #23
svar
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