Avatar billede ihtezaz Praktikant
13. oktober 2003 - 01:41 Der er 68 kommentarer og
1 løsning

Jeg vil lave en jar fil, så jeg kan køre uden udviklingsmiljøet.

Jeg ved der er en masse lignende spørgsmål, men synes ikke jeg kan brug dem.

Jeg har lavet en manifest, således: C:\notepad manifest.txt
og skrevet Main-Class: EAN

Jeg har derefter skrevet C:\jdk1.3.1_03\bin\jar cvmf ean.jar EAN.mf EAN.class //(EAN klassen ligger i bin).
Når jeg køre det får jeg følgende fejlmeddelse: java.io.FileNotFoundException: ean.jar
    at java.io.FileInputStream.open
    at java.io.FileInputStream.<init>
    at sun.tools.jar.Main.run
    at sun.tools.jar.Main.main

Håber nogen kan hjælpe. Virker det er der 200 points.
på forhånd tak.
Avatar billede simonvalter Praktikant
13. oktober 2003 - 02:49 #1
jar cvfm HelloWorld.jar HelloWorld.txt HelloWorld.class

byt om på f og m

og husk at lave newline efter Main-Class: EAN i din manifest.txt
Avatar billede simonvalter Praktikant
13. oktober 2003 - 02:54 #2
problemet er at du siger

cvmf <create><verbose><manifest><file>
                      ean.jar    EAN.mf

så leder den efter ean.jar filen som manifest fil da du giver den som det første argument og vil skrive til EAN.mf
Avatar billede simonvalter Praktikant
13. oktober 2003 - 02:58 #3
jeg plejer selv at bruge jbuilder eller lign til at lave mine jars så jeg undrede mig lidt over at
Main-Class: Klassen
ikke kom med i mit manifest men fandt ud af at den kun vil tilføje linjer der er lavet newline (CR/LF) efter.
Avatar billede simonvalter Praktikant
13. oktober 2003 - 03:00 #4
du kan iøvrigt læse mere om hvad du kan komme i dit manifest etc.

http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 16:48 #5
>>loadet, jeg har prøvet men det virker sgu ik helt.
Avatar billede arne_v Ekspert
13. oktober 2003 - 16:50 #6
Hvilken fejl får du ?
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 16:55 #7
Det har lykkeds mig at lave en jar-fil i mit udviklingsmiljø Kawa, men når jeg klikker på jar-filen: siger den: could not find main class.
Jeg har to klasser i min jar, henholdvis EAN og EANTester.
Det ser ud til der er noget galt med manifesten, Main-class: hvad skal jeg ellers skrive, navn på begge klasser ?
Avatar billede arne_v Ekspert
13. oktober 2003 - 16:59 #8
Nej kun navn på main klassen.

Uden .class

Med evt. pakke
Avatar billede simonvalter Praktikant
13. oktober 2003 - 19:29 #9
hvad står der i din manifest fil i jar filen.. hvis Main-Class: ikke er kommet med så har du sikkert ikke lavet den newline.
Avatar billede simonvalter Praktikant
13. oktober 2003 - 19:32 #10
som arne_v nævner så skal du også bruge pakke navnet

hvis din klasse feks har dette i sig

EAN.java >

package ean;
import ....


så skal der i manifest filen stå

Main-Class: ean.EAN
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 20:58 #11
Ok, tak jeg prøver og svar tilbage.
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 21:15 #12
Ok nu skal jeg lige være med.. er det mening at jeg skriver manifest main-class attributten i min class filer inden compilering. fordi jeg får følgende fejl: Failed to load Main-Class manifest attribute from C:\jdk1.3.1_03\bin\EAN\ean.jar //altså min nye jar-fil.
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 21:17 #13
Min klasser laver ikke package.
Avatar billede arne_v Ekspert
13. oktober 2003 - 21:19 #14
Main-Class direktivet skal stå i manifest filen.
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 21:31 #15
Ok, ja det gør den også, men siger hele tiden: Could not find main class.
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 21:31 #16
altså når jeg dobbeltklikker på jar-filen.
Avatar billede arne_v Ekspert
13. oktober 2003 - 21:33 #17
Prøv og post:
  - manifest filen
  - output fra jar tvf på din jar-fil
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 21:39 #18
Det her skriver jeg i min manifest fil: Main-Class:EANtester CR/LF, idet det er en stand alone appl.
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 21:40 #19
Hvad mener du med output fra jar tvf på din jar-fil?
Avatar billede simonvalter Praktikant
13. oktober 2003 - 21:41 #20
der skal ikke stå CR/LF

det er en newline ...

du skal bare trykke enter efter du har skrevet EANtester
Avatar billede simonvalter Praktikant
13. oktober 2003 - 21:42 #21
skriv
C:\jar tvf ean.jar

i en kommandpromt
og paste hvad du får tilbage her.
Avatar billede arne_v Ekspert
13. oktober 2003 - 21:42 #22
åben en DOS box og skriv:

jar tvf ean.jar
Avatar billede simonvalter Praktikant
13. oktober 2003 - 21:51 #23
har lavet et lille komplet eksempel

Lav en HelloWorld.java
---------------------------
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
---------------------------

lav en Manifest.txt
---------------------------
Main-Class: HelloWorld
---------------------------
(Huske at trykke enter for at lave newline (CR/LF) efter HelloWorld

I en commandpromt compiler du HelloWorld.java
c:\>javac HelloWorld.java
 
og så laver du jar file med

c:\>cvmf HelloWorld.jar Manifest.txt HelloWorld.class

c:\>java -jar HelloWorld.jar
Hello World
Avatar billede simonvalter Praktikant
13. oktober 2003 - 21:53 #24
ups fejl ;)
skal være cvfm
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 21:58 #25
oki, jeg prøver det. tak. vender tilbage.
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 22:24 #26
Hej igen
Jeg har den lille HelloWorld program, jeg har compileret og lavet jar-fil i kawa(er uheldig med dospromt). Jeg har også lavet en manifest som du har angivet. Når jeg dobeltklikker på jar-filen får jeg hverken programmet at se eller fejlmeddelse.
Avatar billede simonvalter Praktikant
13. oktober 2003 - 22:25 #27
nej .. men så ser det ud til at virke .. du har jo ikke nogen gui eller sagt at det skal starte en commandpront ..
derfor kan du ikke se det ..
Avatar billede simonvalter Praktikant
13. oktober 2003 - 22:26 #28
men du kan se om din jar virker med
java -jar HelloWorld.jar
Avatar billede simonvalter Praktikant
13. oktober 2003 - 22:30 #29
hvis du har problemer med commandpromt er det måske fordi du ikke har java i din path.
i my computer/properties/advanced/enviroment variables/system variables/path kan du sætte
C:\j2sdk1.xx\bin

så skulle du kunne skrive javac etc direkte i commandpromt.
Avatar billede simonvalter Praktikant
13. oktober 2003 - 22:30 #30
oversæt selv hvis du kører med dansk layout.
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 22:30 #31
ok, det var super, men når jeg skriver java-jar HelloWorld i dospromt, genkender den ikke som en kommando
Avatar billede simonvalter Praktikant
13. oktober 2003 - 22:31 #32
det er fordi den ikke er i path.
Avatar billede simonvalter Praktikant
13. oktober 2003 - 22:32 #33
du kan se her hvordan du kør under de forskellige OS

http://ccism.pc.athabascau.ca/html/vhd/javapath.xml
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 22:34 #34
my computer oversættes til "Denne computer", ik?
Avatar billede simonvalter Praktikant
13. oktober 2003 - 22:35 #35
jep denne computer / avanceret ..
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 22:40 #36
Skal path'en kun sættes ind i system variabler eller også i bruger variabler ?
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 22:43 #37
Jeg har gjort det, men genkender stadig ikke kommandoerne, jeg prøver at genstarte.
Avatar billede simonvalter Praktikant
13. oktober 2003 - 22:45 #38
system husk at adskille med et ;

feks
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\UltraEdit;C:\j2sdk1.4.2_01\bin;C:\Program Files\Rational\common
Avatar billede simonvalter Praktikant
13. oktober 2003 - 22:45 #39
og det burde være nok at lukke din commandpromt og åbne en ny
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 23:03 #40
Kan du fortæl mig hvor jeg kan hent j2sdk1.4.2_01 ? du får din point såsnart det lykkedes mig at sætte den path.
Avatar billede arne_v Ekspert
13. oktober 2003 - 23:07 #41
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 23:23 #42
Jeg har alleret installeret jdk1.3.1_03, kan jeg godt få java i min path med det eller skal jeg have installeret j2sdk1.4.2_02 ?
Avatar billede arne_v Ekspert
13. oktober 2003 - 23:24 #43
1.3.1 bør virke fint
Avatar billede simonvalter Praktikant
13. oktober 2003 - 23:24 #44
du behøver ikke j2sdk1.4.2_02  for det, jdk1.3.1_03 er fin.
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 23:27 #45
ok, men ved ikke hvor det ikke virker. I min path har jeg skrevet: ;C:\jdk1.3.1_03 men den kender ikke kommando'et java -jar HelloWorld.jar
Avatar billede simonvalter Praktikant
13. oktober 2003 - 23:30 #46
det skal være

;C:\jdk1.3.1_03\bin
Avatar billede simonvalter Praktikant
13. oktober 2003 - 23:30 #47
du kan teste om den er rigtig ved at skrive
path
i commandpromten.
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 23:31 #48
Når jeg skriver: java help. får jeg Exception in thread "main" java.lang.NoClassDefFoundError:help
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 23:32 #49
ok jeg prøver
Avatar billede simonvalter Praktikant
13. oktober 2003 - 23:35 #50
der er heller ikke nogen command der hedder java help

så skal det være java -help

ellers tror den den får en java.class fil som input.
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 23:41 #51
Nu virker det sgu, men jeg får ikke pathen til java når jeg skriver path.
Avatar billede simonvalter Praktikant
13. oktober 2003 - 23:42 #52
hmm .. måske skal du lukke og åbne din commandpromt.

men bare det virker ;)
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 23:45 #53
Lige en sidste ting: jeg skriver javac HelloWorld.java, men den kender ikke kommandoen javac.
Avatar billede simonvalter Praktikant
13. oktober 2003 - 23:47 #54
ja så virker det ikke .. ;/

har du genstartet din command promt ?`

skriv
path i den og paste det.
åben så det sted i windows og paste også.
Avatar billede simonvalter Praktikant
13. oktober 2003 - 23:47 #55
det sted i windows hvor du satte path.
Avatar billede ihtezaz Praktikant
13. oktober 2003 - 23:56 #56
Jeg har genstartet command promt, men det virker ikke. Det ok. du har hjulpet nok. Mange tak og du får pointsene.
Avatar billede simonvalter Praktikant
13. oktober 2003 - 23:58 #57
well jeg kan godt fortsætte lidt endnu .. jeg er ret sikker på at du har fået skrevet det forkert et sted.

men ellers tak for points :)
Avatar billede ihtezaz Praktikant
14. oktober 2003 - 00:02 #58
Ok, lad os prøv lidt. Jeg har skrevet ;C:\jdk1.3.1_03\bin i system variabler. alle andre path skrevet, kommer med når jeg skriver path i command promt
Avatar billede simonvalter Praktikant
14. oktober 2003 - 00:03 #59
prøv at paste alt fradet feldt i system variabler
Avatar billede ihtezaz Praktikant
14. oktober 2003 - 00:06 #60
paste alt fra det felt, altså kopier det nye jeg har skrevet i system variabler?
Avatar billede simonvalter Praktikant
14. oktober 2003 - 00:07 #61
sådan som her
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\UltraEdit;C:\j2sdk1.4.2_01\bin;C:\Program Files\Rational\common
Avatar billede simonvalter Praktikant
14. oktober 2003 - 00:09 #62
jeg vil godt være helt sikker på du har gjordt det det rigtige sted ..

det skulle gerne være som her

http://gbit.dk/tmp.jpg
Avatar billede ihtezaz Praktikant
14. oktober 2003 - 00:11 #63
Jeg tror det fungere nu, jeg havde ikke kaldet variable navnet for Path, nu for jeg jdk13~1.1_0\bin når jeg skriver path i command promt
Avatar billede ihtezaz Praktikant
14. oktober 2003 - 00:11 #64
prøver lige med javac
Avatar billede simonvalter Praktikant
14. oktober 2003 - 00:13 #65
variablen path skulle gerne have eksisteret i forvejen .. du skulle ikke oprette en ny .. bare tilføje til den.
Avatar billede ihtezaz Praktikant
14. oktober 2003 - 00:16 #66
Path blev brugt af en Delphi udviklings miljøet, den har slettet. Skal jeg bare tilføje det ny efter den med ;
Avatar billede simonvalter Praktikant
14. oktober 2003 - 00:18 #67
ja
Avatar billede ihtezaz Praktikant
14. oktober 2003 - 00:20 #68
Ok, nu har genføjet den og kan se hele pathen + jdk13~1.1_0\bin. loadet du er sku en skarp fætter, tak for al den hjælp.
Avatar billede simonvalter Praktikant
14. oktober 2003 - 00:22 #69
det var så lidt
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