PDA

View Full Version : [JAVA] Creazione file jar


diablo...aka...boss
30-05-2009, 14:33
Ho seguito questa procedura, che ho trovato online, e mi pare di capire che sia quella più usata visto che ho trovato solo questa:
* Compilate il file sorgente in modo da creare tutte le classi.
* Nella stessa cartella create il file “Manifest.txt“
* Apritelo e dentro inserite queste stringhe: Manifest-Version: 1.0
Created-By: AUTORE
Main-Class: NOME_CLASSE
* Dopo created-By mettete il vostro nome, in NOME_CLASSE dovrete inserire il nome della classe contenente il metodo main (il nome della classe deve essere senza estensione Es: Rubrica) , dopo premete 2 volte INVIO salvate e chiudete il file.
* Aprite la console (Start->Esegui->cmd.exe) e spostatevi dentro la cartella contenente i file class e il Manifest.txt (Tramite cd Es: cd Desktop)
* Digitate la seguente stringa: jar cmf Manifest.txt nome_file.jar *.class
* in nome_file.jar dovrete semplicemente inserire il nome da dare al vostro .jar (Es: jar cmf Manifest.txt Rubrica.jar *.class)


Ho provato di tutto ma non mi funziona, mi compare questo errore:
java.io.FileNotFoundException: nomefile.jar*.class <The filename, directory name, or volume label syntax is incorrect>ecc

Il file Manifest sono sicuro che sia giusto..

PGI-Bis
30-05-2009, 17:14
Un jar è uno zip per cui volendo puoi benissimo impacchettare le classi (tenendo conto dei package, cioè devi "zippare" le directory radice), aggiungere una META-INF/Manifest.mf e hai fatto il tuo jar.

Da linea di comando scrivi una cosa tipo:

jar mcf Manifest.txt Programma.jar it/

assumendo di lanciare jar dalla cartella del progetto, che esista in questa cartella un file Manifest.txt e che it/ sia la radice del package a cui appartengono le classi.

Prova magari a fare un esperimento con un programma ad hoc.

Diciamo che la cartella di lavoro è c:\bingo

Crei un file Main.java:

package it.programma;

public class Main {
public static void main(String[] args) {
System.out.println("hello world");
}
}

Compili:

javac -d . *.java

Crei un file manifesto:

Manifest-Version: 1.0
Main-Class: it.programma.Main



e lo salvo nella cartella di lavoro come Manifest.txt

A questo punto il jar lo fai con:

jar mcf Manifest.txt Programma.jar it/

Eseguendo con:

java -jar Programma.jar

Dovresti veder spuntare sulla console la scritta:

hello world.

Tutto qua.

diablo...aka...boss
01-06-2009, 12:21
Ho provato sia sul fisso che sul portatile ad eseguire la procedura che mi hai indicato, ma anche per l' esempio di Hello World che mi hai scritto mi continua a comparire lo stesso errore:

Il messaggio di errore proviene dalla Java Virtual Machine: Failed to load Main-Class manifest attribute from C:\xxxx\bingo\Programma.jar

:muro: :muro: :muro:

PGI-Bis
01-06-2009, 13:14
Il contenuto del file manifesto deve terminare con una linea vuota.

prima linea: Manifest-Version: 1.0
secondalinea: Main-Class: it.programma.Main
terzalinea: (vuota)

Controlla, il problema dovrebbe essere lì.

diablo...aka...boss
01-06-2009, 15:44
Si la riga la lasciavo anche prima.
Ho rifatto tutta l' operazione, non come ora da console esce (dopo che digito jar mcf Manifest.txt Programma.jar it/ ):
impossibile trovare il file o la directory


Io ho la cartella bingo sul desktop, dentro c'è il file Main.java e Manifest.txt.
Il file Programma.jar mi viene comunque creato, ma, ovviamente, se lo clicco mi da errore.