/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
At lave en jar fil ?
Fra : Rune


Dato : 13-10-03 16:41

Hejsa, jeg har programmet et lille fint klient program, som nu skal samles i
en jar fil, jeg skriver følgende

C:\Program Files\j2sdk_nb\j2sdk1.4.2\bin>jar cvf client.jar
e:\Gratisopgaver\Client\gratisopgaver.class
e:\Gratisopgaver\Client\gratisopgaver.form
e:\Gratisopgaver\Client\connected.class e:\Gratisopgaver\Client\red.jpg
e:\Gratisopgaver\Client\green.jpg

Det virker som sådan også nogenlunde, problemet er bare at læser jeg i MF
filen, så står der
Manifest-Version: 1.0

Created-By: 1.4.2 (Sun Microsystems Inc.)

Der burde da gerne stå noget om main ?

Når jeg så skriver javaw client.jar, så får jeg denne fejl: Cound not find
the main class. Program will exit.

Det tror jeg gerne når den ikke skriver det i MF filen, men det er min
gratisogpaver.class som er main class

håber nogen kan hjælper mig.

MVH

RUne



 
 
Jonas Kongslund (13-10-2003)
Kommentar
Fra : Jonas Kongslund


Dato : 13-10-03 16:45

Rune wrote:
> Hejsa, jeg har programmet et lille fint klient program, som nu skal samles i
> en jar fil, jeg skriver følgende
>
> C:\Program Files\j2sdk_nb\j2sdk1.4.2\bin>jar cvf client.jar

Løsningen til dit problem står beskrevet i
http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jar.html

--
Jonas


Rune (13-10-2003)
Kommentar
Fra : Rune


Dato : 13-10-03 17:09


"Jonas Kongslund" <jonas@kongslund.dk> wrote in message
news:3f8ac8ab$0$54763$edfadb0f@dread11.news.tele.dk...

> Løsningen til dit problem står beskrevet i
> http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jar.html

Kommer du så ikke med den rigtige løsning når jeg nu stadig ikke kan få det
til at fungere ?

-Rune



Jonas Kongslund (17-10-2003)
Kommentar
Fra : Jonas Kongslund


Dato : 17-10-03 14:33

Rune wrote:

>
> "Jonas Kongslund" <jonas@kongslund.dk> wrote in message
> news:3f8ac8ab$0$54763$edfadb0f@dread11.news.tele.dk...
>
>> Løsningen til dit problem står beskrevet i
>> http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jar.html
>
> Kommer du så ikke med den rigtige løsning når jeg nu stadig ikke kan få
> det til at fungere ?

Har du prøvet at lave din egen manifest-fil indeholdende
"Main-Class"-attributten og derefter inkluderet den i jar-filen med
kommandoen

jar cfm myFile.jar myManifestFile *.class

som nævnt i dokumentationen?

--
Jonas Kongslund <jonas(at)kongslund.dk> http://www.kongslund.dk/
The programmer, like the poet, works only slightly removed from pure
thought-stuff. He builds his castles in the air, from air, creating by
exertion of the imagination. [Brooks, The Mythical Man-Month]

Jonas Kongslund (17-10-2003)
Kommentar
Fra : Jonas Kongslund


Dato : 17-10-03 14:36

Jonas Kongslund wrote:

> Rune wrote:
>
>>
>> "Jonas Kongslund" <jonas@kongslund.dk> wrote in message
>> news:3f8ac8ab$0$54763$edfadb0f@dread11.news.tele.dk...
>>
>>> Løsningen til dit problem står beskrevet i
>>> http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jar.html
>>
>> Kommer du så ikke med den rigtige løsning når jeg nu stadig ikke kan få
>> det til at fungere ?
>
> Har du prøvet at lave din egen manifest-fil indeholdende
> "Main-Class"-attributten og derefter inkluderet den i jar-filen med
> kommandoen
>
> jar cfm myFile.jar myManifestFile *.class
>
> som nævnt i dokumentationen?

Hov, jeg kan se at du allerede har fået svar på dit spørgsmål. Sorry.

--
Jonas Kongslund <jonas(at)kongslund.dk> http://www.kongslund.dk/
The programmer, like the poet, works only slightly removed from pure
thought-stuff. He builds his castles in the air, from air, creating by
exertion of the imagination. [Brooks, The Mythical Man-Month]

Rune (17-10-2003)
Kommentar
Fra : Rune


Dato : 17-10-03 14:21


"Jonas Kongslund" <gamma@post.tele.dk> wrote in message
news:rmRjb.1466$tA2.503@news.get2net.dk...

>
> Hov, jeg kan se at du allerede har fået svar på dit spørgsmål. Sorry.

Det er bare helt i orden :)

-Rune



Peter Lind (13-10-2003)
Kommentar
Fra : Peter Lind


Dato : 13-10-03 19:15

Rune wrote:
> Hejsa, jeg har programmet et lille fint klient program, som nu skal
> samles i en jar fil, jeg skriver følgende
>
> C:\Program Files\j2sdk_nb\j2sdk1.4.2\bin>jar cvf client.jar
[snip]

> Når jeg så skriver javaw client.jar, så får jeg denne fejl: Cound not
> find the main class. Program will exit.
> Det tror jeg gerne når den ikke skriver det i MF filen, men det er min
> gratisogpaver.class som er main class

'Den' kan jo ikke vide hvad din main-class er, så du skal selv tilføje det
til manifest filen.
Du kan lave en lille tekstfil med følgende indhold:

Main-Class: gratisopgaver.class

og gemme den som f.eks manifest.txt

Så skriver du

jar -umf manifest.txt client.jar

og vupti, så er din jar-fil pludselig blevet bekendt med sin mainclass.

--
Mvh
Peter Lind



Rune (13-10-2003)
Kommentar
Fra : Rune


Dato : 13-10-03 19:43


"Peter Lind" <peterlind@hotmail.com> wrote in message
news:bmeq76$2ahc$1@news.cybercity.dk...
> Rune wrote:

>
> 'Den' kan jo ikke vide hvad din main-class er, så du skal selv tilføje det
> til manifest filen.
> Du kan lave en lille tekstfil med følgende indhold:
>
> Main-Class: gratisopgaver.class
>
> og gemme den som f.eks manifest.txt
>
> Så skriver du
>
> jar -umf manifest.txt client.jar
>
> og vupti, så er din jar-fil pludselig blevet bekendt med sin mainclass.

Min java er dum, den gider ikke opdatere...

Selv om jeg prøver at lave en helt ny

C:\java>jar cvmf c:\manifest.txt client.jar *
added manifest
adding: connected.class(in = 2677) (out= 1325)(deflated 50%)
adding: gratisopgaver.class(in = 5565) (out= 2724)(deflated 51%)
adding: gratisopgaver.form(in = 7539) (out= 1148)(deflated 84%)
adding: green.jpg(in = 8514) (out= 1852)(deflated 78%)
adding: red.jpg(in = 8606) (out= 1753)(deflated 79%)

Jeg har skrevet: Main-Class: gratisopgaver.class i manifest.txt
og alligevel så er det kun det her som der står i MF filen bagefter, jeg
fatter brik...
Manifest-Version: 1.0

Created-By: 1.4.2 (Sun Microsystems Inc.)



-Rune



Peter Jensen (14-10-2003)
Kommentar
Fra : Peter Jensen


Dato : 14-10-03 22:02

Rune wrote:

> Jeg har skrevet: Main-Class: gratisopgaver.class i manifest.txt og
> alligevel så er det kun det her som der står i MF filen bagefter, jeg
> fatter brik...
> Manifest-Version: 1.0
>
> Created-By: 1.4.2 (Sun Microsystems Inc.)

En god start er at læse dokumentationen. 'jar' skal for det første
kaldes med parameteren '-m <navn på din manifest fil>'[1]. Derefter skal
manifest filen rent faktisk være udformet som krævet. Jeg har klippet
det relevante ud af dokumentationen[2] nedenfor:

---
Main-Class :
   The value of this attribute defines the relative path of the
   main application class which the launcher will load at startup
   time. The value must not have the .class extension appended to
   the class name.
---

Det burde være åbenlyst hvor din fejl er

[1] I hvert fald med blackdown's 'jar'. Sun's er nok ikke meget
forskellig.

[2] /usr/share/doc/java-sdk-docs-1.4.2/html/guide/jar/jar.html på mit
system. Nok et andet sted på dit system ...

--
PeKaJe

Truth is the most valuable thing we have -- so let us economize it.
      -- Mark Twain

Rune (15-10-2003)
Kommentar
Fra : Rune


Dato : 15-10-03 00:19


"Peter Jensen" <usenet@pekajemaps.homeip.net> wrote in message
news:3f8c645a$0$29334$edfadb0f@dread15.news.tele.dk...
> ---
> Main-Class :
> The value of this attribute defines the relative path of the
> main application class which the launcher will load at startup
> time. The value must not have the .class extension appended to
> the class name.
> ---
>
> Det burde være åbenlyst hvor din fejl er

Det begynder at hjælpe på det, nu skriver den i det mindste main-class:
gratisopgaver inden i MF filen

Jeg har postet alt mit skrammel i dk.binaer kl 01:16 med title "Java - JAR"
Det virker ikke endnu, hvis der er en som kan samle det for mig så det
virker vil jeg blive utrolig glad, jeg er lige på renden til at droppe Java
programmeringen og skifte til C# hvor der kommer en exe fil, som nemt kan
bruge på Winblows computere :P

-Rune



Peter Jensen (15-10-2003)
Kommentar
Fra : Peter Jensen


Dato : 15-10-03 06:58

Rune wrote:

>> Det burde være åbenlyst hvor din fejl er
>
> Det begynder at hjælpe på det, nu skriver den i det mindste
> main-class: gratisopgaver inden i MF filen

Det var da en start ...

> Jeg har postet alt mit skrammel i dk.binaer kl 01:16 med title "Java -
> JAR" Det virker ikke endnu, hvis der er en som kan samle det for mig
> så det virker vil jeg blive utrolig glad,

Det ville hjælpe rigtigt meget hvis du huskede at inkludere de anonyme
klasser der åbenbart mangler i jar filen (dem med navne fra
gratisopgaver$1.class til gratisopgaver$5.class). Hvis du havde
medsendt java filerne, kunne jeg have ordnet det for dig. Som det er
nu, mangler der simpelthen kode, hvilket java programmet også fortæller
i sin backtrace.

Noget andet er at den connected.class som du vedhæftede, rent faktisk er
en jar fil. Der er muligvis sket en fejl et eller andet sted. Din jar
fil indeholder dog den rigtige klasse.

> jeg er lige på renden til at droppe Java programmeringen og skifte til
> C# hvor der kommer en exe fil, som nemt kan bruge på Winblows
> computere :P

Jeg har ikke tænkt mig at opgive dig her ... Der er brug for folk der
kan programmere cross-platform, og til det formål er Java lettest.

--
PeKaJe

"You boys lookin' for trouble?"
"Sure. Whaddya got?" -- Marlon Brando, "The Wild Ones"

Rune (15-10-2003)
Kommentar
Fra : Rune


Dato : 15-10-03 23:19


"Peter Jensen" <usenet@pekajemaps.homeip.net> wrote in message
news:3f8ce1ea$0$29356$edfadb0f@dread15.news.tele.dk...
> > Jeg har postet alt mit skrammel i dk.binaer kl 01:16 med title "Java -
> > JAR" Det virker ikke endnu, hvis der er en som kan samle det for mig
> > så det virker vil jeg blive utrolig glad,
>
> Det ville hjælpe rigtigt meget hvis du huskede at inkludere de anonyme
> klasser der åbenbart mangler i jar filen (dem med navne fra
> gratisopgaver$1.class til gratisopgaver$5.class). Hvis du havde
> medsendt java filerne, kunne jeg have ordnet det for dig. Som det er
> nu, mangler der simpelthen kode, hvilket java programmet også fortæller
> i sin backtrace.

Ok, troede faktisk ikke at de skulle bruges til noget, men bare at de var
temp filer.
Jeg har ikke helt så meget styr på hvordan det forgår med dist. af java
programmerne.

> Noget andet er at den connected.class som du vedhæftede, rent faktisk er
> en jar fil. Der er muligvis sket en fejl et eller andet sted. Din jar
> fil indeholder dog den rigtige klasse.

Nu har jeg postet det hele i dk.binaer med titel:
Java - ALT - gratisopgaver


> Jeg har ikke tænkt mig at opgive dig her ... Der er brug for folk der
> kan programmere cross-platform, og til det formål er Java lettest.

Jeg håber :)

Mit program er ikke helt færdigt, men gider egentligt ikke lave det færdigt
i java hvis jeg ikke finder ud af hvordan jeg kan lave en fornuftig dist. af
det.


-Rune



Peter Jensen (16-10-2003)
Kommentar
Fra : Peter Jensen


Dato : 16-10-03 15:43

Rune wrote:

>> Det ville hjælpe rigtigt meget hvis du huskede at inkludere de
>> anonyme klasser der åbenbart mangler i jar filen (dem med navne fra
>> gratisopgaver$1.class til gratisopgaver$5.class). Hvis du havde
>> medsendt java filerne, kunne jeg have ordnet det for dig. Som det er
>> nu, mangler der simpelthen kode, hvilket java programmet også
>> fortæller i sin backtrace.
>
> Ok, troede faktisk ikke at de skulle bruges til noget, men bare at de
> var temp filer.

Det står nu ellers beskrevet i manualen, men pyt med det. Nu ved du at
de er vigtige.

De indre klasser kan også være navngivne. Disse genererer .class filer
med navne som <ydre klasse>$<indre klasse>.class.

> Jeg har ikke helt så meget styr på hvordan det forgår med dist. af
> java programmerne.

Det er der ingen der har, før de lærer det ...

>> Noget andet er at den connected.class som du vedhæftede, rent faktisk
>> er en jar fil. Der er muligvis sket en fejl et eller andet sted.
>> Din jar fil indeholder dog den rigtige klasse.
>
> Nu har jeg postet det hele i dk.binaer med titel: Java - ALT -
> gratisopgaver

Desværre er dk.binær inficeret med enorme posts, som skubber alt væk.
Jeg kan derfor ikke finde det du har postet. Du kan evt. sende det til
den mail adresse jeg bruger her. Den virker som regel, men min server
har en defekt harddisk, så af og til bliver der problemer ...

Prøv dog først at se om ikke du kan få det til at virke. Den procedure
jeg bruger når jeg skal lave en jar fil er:

1. Fjern alle .class filer, så compilen er helt ren.

2. Compile alle .java filer (javac *.java)

3. Lav en manifest.txt fil der indeholder "Main-class: <klassenavn uden
.class>"

4. Pak det hele sammen med 'jar' (jar -cmf manifest.txt
<programnavn>.jar *.class <liste over andre resourcer der bruges>)

>> Jeg har ikke tænkt mig at opgive dig her ... Der er brug for folk der
>> kan programmere cross-platform, og til det formål er Java lettest.
>
> Jeg håber :)
>
> Mit program er ikke helt færdigt, men gider egentligt ikke lave det
> færdigt i java hvis jeg ikke finder ud af hvordan jeg kan lave en
> fornuftig dist. af det.

Det går nok. Det er i hvert fald blevet gjort før

--
PeKaJe

All great ideas are controversial, or have been at one time.

Rune (16-10-2003)
Kommentar
Fra : Rune


Dato : 16-10-03 18:44

Nu har jeg fået en del hjælp af Peter Jensen, så ham vil jeg gerne takke :)

For at få samlet en fornuftig jar fil, så skal alle filer som bliver
kompileret bruges dvs. <klassenavn>$<int>.class osv.

Jeg samlede mine filer i et bibliotek som hed c:\java derefter skal der
laves en mainfest.txt fil, som jeg bare lagde c:\manifest.txt

så gik jeg ind i c:\java og skrev på en kommando linie "jar -cmf
c:\manifest.txt gratisopgaver.jar *
så bliver alt indhold af c:\java smidt i en jar fil med navnet gratisopgaver

i manifest.txt står der "Main-class: gratisopgaver"

For at kører programmet sakl der så skrives "javaw -jar gratisopgaver.jar"

Nu fungere alt flot og godt :)

-Rune



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste