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!
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!
Vastaukset 4
Vanhimmat
Main-Class: paaLuokka
---->
Main-Class: foo.bar.paaLuokka
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 :)
Ilmoittaa ettei löydä main classia