Avatar billede javaknold Nybegynder
26. maj 2003 - 13:16 Der er 15 kommentarer og
2 løsninger

Simpelt - men umuligt

Forsøger at lave jar fil som kan eksekveres fra skrivebord

Ligegyldigt hvad jeg gør kan den ikke finde Main class

Har følgende:

c:\dir1\dir2\*.class

Program startes med c:\dir1\dir2\Start.class

I Manifest har jeg prøvet alt
etc.: Main-Class Start
og    Main-Class dir1.dir2.Start

Har søgt på Eksperten uden at blive klogere,
NB jeg har packages navne med i java filer!
Avatar billede javaknold Nybegynder
26. maj 2003 - 13:17 #1
Sludder  Main-Class: Start
Avatar billede carstenknudsen Nybegynder
26. maj 2003 - 13:22 #2
Har du husket et linieskift efter din Main-Class attribut?
Det er vigtigt.
Avatar billede javaknold Nybegynder
26. maj 2003 - 13:23 #3
Tja - det mener jeg, prøver lige nogle muligheder igen !
Avatar billede javaknold Nybegynder
26. maj 2003 - 13:44 #4
Er det ikke korrekt at gøre sådan

jar cvf XXX.jar c:\dir1\meta-inf\manifest.mf c:\dir1\Start.class
Avatar billede carstenknudsen Nybegynder
26. maj 2003 - 13:50 #5
Jo, det burde virke. Jeg tror ikke at der er problemer med store og små bogstaver (jeg bruger Linux og der laver kalder den meta-inf META-INF). Hvordan starter dit program helt præcist? Det skal normalt køres som java -jar XXX.jar når du benytter manifestet.
Avatar billede javaknold Nybegynder
26. maj 2003 - 14:14 #6
fra cmd med:  C:\>dir1.Start

Det ser ud som om jeg har flere META-INF mapper, check nedenstående
C:\>jar tf XXX.jar
META-INF/
META-INF/MANIFEST.MF
c:/dir1/meta-inf/manifest.mf
c:/dir1/Start.class
Avatar billede javaknold Nybegynder
26. maj 2003 - 14:17 #7
Mit manifest ser sådan ud:
Manifest-Version: 1.0
Main-Class: Start


Og følgende:

C:\>java -jar XXX.jar
Failed to load Main-Class manifest attribute from
XXX.jar

C:\>
Avatar billede carstenknudsen Nybegynder
26. maj 2003 - 14:26 #8
Det forklarer jo et og andet. Du skal smide din manifest.mf ind i META-INF direktoriet i jar filen. Det nemmeste næsten at oprette direktoriet lokalt og så oprette jar filen med ordren:
jar cvf XXX.jar *
så kommer alle filer og direktorier med.
Din kommando C:\>dir1.Start er jeg noget uklar over, er der en fil der hedder dir.Start, for det lyder ikke som noget der har med Java at gøre. Hvis du retter det ovenstående til så skulle du være godt kørende.
Avatar billede javaknold Nybegynder
26. maj 2003 - 14:34 #9
dir1.Start: Betyder at jeg package navne med i java filerne


packages dir1;
import .....;

public class Start() {
................
}

Fedter lidt videre
Avatar billede javaknold Nybegynder
26. maj 2003 - 14:41 #10
Fatter det ikke !

Er det ikke korrekt, at jeg laver en mappe under dir1 som jeg kalder META-INF
heri laver jeg en MANIFEST.txt som jeg omdøber til MANIFEST.MF

Herefter det er simpelthen bare:    jar cvf XXX.jar ??  eller hvad ??
Avatar billede carstenknudsen Nybegynder
26. maj 2003 - 14:41 #11
Det betyder bare at du skal have dir1.Start i din manifest fil. Kommandoen dir1.Start giver vel ingen mening i en dos-shell.
Avatar billede carstenknudsen Nybegynder
26. maj 2003 - 15:03 #12
Til 26/05-2003 14:41:46:
nej, META-INF skal ligge direkte under hvor du laver din jar fil.
Du står i et direktorie, så skal der ligge to direktorier:
META-INF og dir1
I META-INF ligger MANIFEST.MF og i dir1 ligger Start.class (hvor Start.java har et package dir1; statement øverst). Så udførerer du:
jar cvf XXX.jar *
Avatar billede javaknold Nybegynder
26. maj 2003 - 15:23 #13
Tja - ændrer ikke noget

Kæmper videre en dag jag har bedre tid
Avatar billede arne_v Ekspert
27. maj 2003 - 04:27 #14
Manifest skal ligges ind med m option !

jar cvmf XXX.jar c:\dir1\meta-inf\manifest.mf c:\dir1\Start.class

Altså cvmf i.s.f. cvf.

[og manifest filen skal så stå først, men det gjorde den tilfældigvis
også]
Avatar billede carstenknudsen Nybegynder
27. maj 2003 - 09:30 #15
Hvis du kalder filen META-INF/MANIFEST.MF bliver den vel automatisk opfattet som en manifest fil?
Avatar billede javaknold Nybegynder
27. maj 2003 - 13:11 #16
>arne_v
cvmf XXX.jar c:\dir1\meta-inf\manifest.mf c:\dir1\Start.class
giver fejlen: Kan ikke finde filen XXX.jar

Men kører hvis jeg istedet bruger cvfm, altså bytter om på 'f' og 'm'

Jeg kan se at den bruger manifestet da jeg får forskellige fejl, alt afhængig af hvad jeg skriver i manifestet.
    eks. 1.: java.lang.NoClassDefFoundError: Start
    eks. 2.: java.lang.NoClassDefFoundError: dir1/Start

Nå - vi skal videre, jeg bruger Forte istedet for, den virker.

Men tak alligevel
Avatar billede javaknold Nybegynder
27. maj 2003 - 13:15 #17
Havde nær glemt point

Tillader mig at dele i forholdet 20/10 til carstenknudsen

Håber det er OK !
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



IT-JOB

Netcompany A/S

IT Consultant

MAN Energy Solutions

Full Stack Developer

Acrelec Danmark

IT-supporter

Arbejdernes Landsbank

Salesforce Marketing Cloud tech lead