jar ongelmia

Haluaisin tehdä jar-tiedoston, jota klikkaamalla saan ohjelmani käynnistymään automaaattisesti, mutta nyt on ongelmia...
Koodini toimii jo, voin kokeilla sitä esim. JCreatorissa execute-komenolla.

Minulla on pääluokka (1.), jossa käytän tekemääni työkalua (2.) silloin tällöin. Otetaan nyt vaikka nimet:
1. paaLuokka.class
2. teenJotainKivaa.class

Sitten olen tehnyt manifest.txt tiedoston, joka näyttää tältä:
Manifest-Version: 1.2
Main-Class: paaLuokka
Created-By: 1.5 (Sun Microsystems Inc.)

Olen kokeillut komennolla: jar cmf manifest.txt SmsTool.jar *.class
Tämä pakkaa jar-tiedostoon haluamani luokat pakkauksen juureen ja manifest-tiedoston META-INF-hakemistoon.

Kun klikkaan tätä pääluokka käynnistyy mutta ihan niin kuin se ei osaisi käyttää tekemääni työkalua vaikka JCreatorissa kokeillessa ohjelmani toimii.
Tuntuu niin kuin pääluokka toimisi ainoastaan itsenäisesti...

Mitä tehdä?

Koodin pitäisi toimia, koska se toimii jo JCreatorissa. Luulen, että pakkauksen tekemisessä on virhe tai manifest-tiedostossa. Jelp!
4287
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

Main-Class: paaLuokka

---->

Main-Class: foo.bar.paaLuokka

Äänestä
  • oman package-määrityksen mukaisissa alihakemistoissa jarrin sisällä?

    Äänestä

  • Piru kirjoitti:

    oman package-määrityksen mukaisissa alihakemistoissa jarrin sisällä?

    class-tiedostot ovat tavallaan pakkauksen juuressa. Eli jos avaan jarrin winrarissa niin se näyttää että class-tiedostot eivät ole kansiossa, mutta menifest on META-INF-kansiossa.

    En ole määritellyt moisia pakkauksia. Pitäisikö? Menisikö se näin?

    teenJotainKivaa.java-tiedoston alkuun:
    package munPakkaus;

    Entä tuleeko paaLuokka.class-tiedostoon jotain tuohon liittyvää?

    by the way.. huomasin että ohjelmani käynnistyy ja toimii oikein kun käynnistän sen java paaLuokka komennolla. Tai no, ei se vielä täysin oikein toimi, mutta lähelle...
    Eli vika on tosiaan pakkaamisessa.

    Olen newbie ja kova räveltämään :)

    Äänestä

  • Ilmoittaa ettei löydä main classia

    Äänestä

Kommentoi aloitusta


Jakke kirjoitti:

Haluaisin tehdä jar-tiedoston, jota klikkaamalla saan ohjelmani käynnistymään automaaattisesti, mutta nyt on ongelmia...
Koodini toimii jo, voin kokeilla sitä esim. JCreatorissa execute-komenolla.

Minulla on pääluokka (1.), jossa käytän tekemääni työkalua (2.) silloin tällöin. Otetaan nyt vaikka nimet:
1. paaLuokka.class
2. teenJotainKivaa.class

Sitten olen tehnyt manifest.txt tiedoston, joka näyttää tältä:
Manifest-Version: 1.2
Main-Class: paaLuokka
Created-By: 1.5 (Sun Microsystems Inc.)

Olen kokeillut komennolla: jar cmf manifest.txt SmsTool.jar *.class
Tämä pakkaa jar-tiedostoon haluamani luokat pakkauksen juureen ja manifest-tiedoston META-INF-hakemistoon.

Kun klikkaan tätä pääluokka käynnistyy mutta ihan niin kuin se ei osaisi käyttää tekemääni työkalua vaikka JCreatorissa kokeillessa ohjelmani toimii.
Tuntuu niin kuin pääluokka toimisi ainoastaan itsenäisesti...

Mitä tehdä?

Koodin pitäisi toimia, koska se toimii jo JCreatorissa. Luulen, että pakkauksen tekemisessä on virhe tai manifest-tiedostossa. Jelp!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu