PDA

View Full Version : [JAVA] Problema creazione file JAR


Manugal
18-09-2009, 13:48
Ciao a tutti!

Sto cercando di creare un file JAR per il mio progetto in Java, ma ogni volta che lancio il file JAR non riesce a trovare la Main-Class. Il mio progetto è suddiviso in cartelle, in questo modo:

bin
db
img
lib
src

In lib c'è un file JAR che uso per interfacciarmi a un DB Sqlite. Il file MANIFEST che creo è il seguente:


Manifest-Version: 1.0
Created-By: 1.6.0_16 (Sun Microsystems Inc.)
Class-Path: lib/sqlitejdbc-v056.jar
Main-Class: MainWindow
SplashScreen-Image: img/startup.png


Quindi creo il file JAR in questo modo:

jar cf DentGest.jar bin db lib img src


Dopodiché aggiorno il MANIFEST con questo mio personalizzato:

jar cfm DentGest.jar MANIFEST.MF bin db lib img src


Se provo a lanciarlo mi dice sempre "Could not find the main class: MainWindow. Program will exit".

Ho provato a scrivere anche: Main-Class: bin/MainWindow ma è uguale. Ho provato anche a mettere tutti i file class fuori dalla directory bin ma fa sempre la stessa cosa.

Non so più che fare.

Caldwell83
18-09-2009, 14:14
La classe MainWindow in che package è?
Nel manifest devi indicare anche quello:
Main-Class: TuoPackage.MainWindow

Manugal
18-09-2009, 14:47
Il problema è che il progetto l'ho creato con Eclipse e lui mi mette tutto dentro a un (default package), di cui non conosco il nome. Come faccio a saperlo?

Caldwell83
18-09-2009, 14:50
Nelle prime righe del file sorgente dovrebbe esserci scritto:

package TuoPackage;

Manugal
18-09-2009, 15:10
Niente da fare. Ho provato a mettere i file sorgenti dentro un nuovo package chiamato MyPackage (aggiungendo all'inizio in ogni file sorgente package MyPackage).

Creo il file JAR:

jar cf DentGest.jar bin db lib img src


Aggiorno il MANIFEST:

jar cfm DentGest.jar MANIFEST.MF bin db lib img src


Quando lo lancio mi da sempre lo stesso errore, stavolta che non trova MyPackage.MainWindow.

Caldwell83
18-09-2009, 15:20
Boh :stordita:
Prova a dare un'occhiata qui: http://java.sun.com/docs/books/tutorial/deployment/jar/build.html

Manugal
18-09-2009, 16:34
Infatti è da lì che avevo visto come creare il file JAR. Non so più che pensare. :(

Ma il file MANIFEST così come l'ho creato e poi messo nel file JAR è giusto? Cioè la procedura che faccio è corretta?

Caldwell83
18-09-2009, 16:44
Direi di si. Sul sito della sun dice cosi':

We then create a JAR file named MyJar.jar by entering the following command:

jar cfm MyJar.jar Manifest.txt MyPackage/*.class

Manugal
18-09-2009, 17:02
Ce l'ho fatta!!!!!!

Praticamente ho spostato la cartella MyPackage fuori da bin ed ho messo nel MANIFEST MyPackage.MainWindow. Ora funziona tutto. Grazie.