Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: JAR-tiedoston käynnistys tuplaklikkaamalla

Macro [08.10.2012 17:31:03]

#

Morjens

Olen luonut NetBeansilla Java-ohjelman. Nyt kun pakkaan sitä jar-tiedostoksi ja koitan käynnistää tuplaklikkaamalla (Windowsista valittu avausohjelmaksi javaw), saan virheen:

Exception in thread "main" java.lang.NoClassDefFoundError: S:\Kansio\Ohjelma/jar
Caused by: java.lang.ClassNotFoundException: S:\Kansio\Ohjelma.jar

...

Could not find the main class: S:\Kansio\Ohjelma.jar. Program will exit.

Sinänsä aika erikoista, kun koneilla joissa JDK on asennettuna, softa käynnistyy tuplaklikkauksella. Muilla koneilla se lähtee käyntiin vain komennolla javaw -jar Ohjelma.jar.

Missä vika?

Manifest-tiedosto MANIFEST.MF näyttää tältä (lopussa on tyhjä rivi)

Manifest-Version: 1.0
Class-Path: lib/itextpdf-5.3.3.jar
Created-By: 1.6.0_35 (Sun Microsystems Inc.)
Main-Class: my.package.MyMainClass

Pakkasin ohjelman jar-tiedostoksi komennolla

jar cvfm Ohjelma.jar MANIFEST.MF my/package/* lib Resources txt

Metabolix [08.10.2012 17:33:46]

#

Ei auta vain valita avausohjelmaksi javaw:tä, vaan pitää saada avauskomentoon myös tuo parametri -jar mukaan. Muuten polku tulkitaan luokan nimeksi ja etsitään vastaavaa class-tiedostoa.

Macro [08.10.2012 19:54:23]

#

Miksi ohjelma käynnistyy sitten koneilla, joilla on JDK asennettuna?

Metabolix [08.10.2012 20:24:38]

#

JDK varmaan asettaa avausohjelman oikein, eihän se ole mikään mahdoton tehtävä. Joku muu ehkä osaa antaa suorat ohjeet, itse voin antaa nyt vain googletusta. Yksinkertainen ratkaisu on tietysti etsiä rekisteristä viittauksia javaw-ohjelmaan, jolloin nykyiseltä koneeltasi löytyy väärä ratkaisu, joka pitää poistaa, ja JDK-koneelta löytynee oikea ratkaisu, joka pitää kopioida nykyiselle koneelle.

Macro [12.10.2012 15:39:56]

#

Kiitos sulle, etsin rekisteristä kaikki viittaukset siihen, ja lisäsin -jar-lipun.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta