Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 45

Discussione: [Java] creazione file jar

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito [Java] creazione file jar

    Salve.

    Dopo aver fatto i miei programmi in java, mi ero interessato alla creazione di un file jar, contenente delle applicazioni che ho fatto, ho trovato questo tutorial a riguardo:

    http://www.davidesantilli.it/archives/33

    ho creato il file manifest come dice nel tutorial, ma non ho inserito l'ultima riga non sapendoci cosa ci andava, dopo di che ho eseguito questo comando:
    Codice:
    jar cvfm manifest applicazione.jar file1.class
    Confermando, mi ha restituito come messaggio, che il comando jar non era riconosciuto, ho provato a modificare il comando in questo:

    Codice:
    java jar cvfm manifest applicazione.jar file1.class
    Questo comando me lo da valido, ma mi restituisce il seguente errore:



    All'inizio pensavo che era un'eccessione dell'applicazione java, ma l'applicazione mi funziona correttamente, di cosa si tratta?
    Ultima modifica di sevenjeak : 25-01-2010 alle ore 23.30.26

    Sevenjeak
    Software developer and much more

  2. #2
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Devi creare il file MANIFEST.mf così:
    Codice:
    Manifest-Version: 1.0
    Created-By: 1.6.0_18 (Sun Microsystems Inc.)
    Main-Class: percorso\alla\classe\da\avviare\NomeClasse
    e poi devi eseguire il seguente comando:
    Codice:
    jar cfm file.jar MANIFEST.mf a.class b.class

  3. #3
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Con eclipse lo esporti con un paio di click :-)
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  4. #4
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    non hai impostato le variabili d'ambiente (lo dice anche nella pagina che hai linkato) e quindi non ti trova l'eseguibile che risiede in una directory sconosciuta al prompt/shell

    devi aggiungere il percorso in cui si trova jar alla variabile PATH (senza sovrascriverla, ma concatenando i path già presenti)

  5. #5
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Come già detto prima, mi dice che: il comando jar non e riconosciuto come comando interno o esterno.

    Citazione Originalmente inviato da Xsescott Visualizza messaggio
    Con eclipse lo esporti con un paio di click :-)
    Eclipse non lo mai usato, ma credo che lo userò, ma prima di fare il file jar con eclipse vorrei riuscirlo a fare da prompt di comando
    Ultima modifica di sevenjeak : 26-01-2010 alle ore 13.16.58

    Sevenjeak
    Software developer and much more

  6. #6
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Come già detto prima, mi dice che: il comando jar non e riconosciuto come comando interno o esterno.
    esatto, perchè non lo vede devi richiamarlo utilizzando un path assoluto oppure aggiungere il percorso alla directory che contiene l'eseguibile jar al contenuto di PATH

  7. #7
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Citazione Originalmente inviato da AlexKidd Visualizza messaggio
    devi richiamarlo utilizzando un path assolutoPATH
    In che senso, in che modo dovrei richiamarlo? io il file jar lo devo creare, come faccio a richiamarlo, spiegati meglio, non credo di aver capito cosa fare

    Sevenjeak
    Software developer and much more

  8. #8
    Guest

    Predefinito

    Dai dal DOS questo comando:
    Codice:
    PATH=%PATH%;pathjar
    Cambiando pathjar con la directory in cui è presente il programma jar.exe. Sinceramente non so dov'è, ma se fai una ricerca in C:\Programmi\Java o qualcosa del genere dovresti trovarlo.

  9. #9
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Ho trovato il file jar.exe in questa directory:
    C:\Programmi\Java\jdk1.6.0_13\bin.

    Ho provato a lanciare il comando: PATH=%PATH%;C:\Programmi\Java\jdk1.6.0_13\bin e riprovando di nuovo a rilanciare il comando: jar cfm manifest app.jar classe.class mi dice sempre che è impossibile trovare il comando
    Ultima modifica di sevenjeak : 27-01-2010 alle ore 18.52.15

    Sevenjeak
    Software developer and much more

  10. #10
    Guest

    Predefinito

    Hm... prova con jar.exe invece di jar, ma non ti garantisco nulla.

  11. #11
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Infatti non va. Non so che conta quale classe ho dichiarato per prima: ma ho scritto il comando cosi: jar cfm file_da_creare.jar MANIFEST.mf Classe_secondaria.class Classe_main.class
    Ultima modifica di sevenjeak : 28-01-2010 alle ore 00.39.39

    Sevenjeak
    Software developer and much more

  12. #12
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    Non sono esperto di windows ma sono quasi sicuro che tu deba usare $VAR al posto di %VAR%

    verifica con

    echo $PATH

    cosa contiene PATH prima e dopo l'assegnamento PATH=%PATH%;C:\Programmi\Java\jdk1.6.0_13\bin

  13. #13
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Da quello che sapevo, il comando echo mi stampa quello scritto successivamente, infatti, ho provato è mi stampa solo $PATH

    Sevenjeak
    Software developer and much more

  14. #14
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    strano.... dovrebbe stampare il contenuto di PATH

    ho un orrendo dubbio prova a fare

    echo %PATH%

    magari mi son confuso con la bash di unix/linux

  15. #15
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Ho provato a stampare il comando dopo aver scritto questa riga di comando: PATH=%PATH%;C:\Programmi\Java\jdk1.6.0_13\bin mi stampa un paio di percorsi contenente la directory bin, al di fuori della cartella programmi.

    Invece se eseguo il comando dopo aver scritto: PATH=%PATH%;C:\Programmi\Java\jdk1.6.0_13\bin\jar. exe
    Mi stampa la rispettiva path: C:\Programmi\Java\jdk1.6.0_13\bin\jar.exe

    Sevenjeak
    Software developer and much more

  16. #16
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    prova con set PATH=%PATH%;C:\Programmi\Java\jdk1.6.0_13\bin

  17. #17
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Provato, dopo aver scritto: echo %PATH% mi stampa sempre un paio di percorsi al di fuori della directory Programmi.

    Scusa la domanda, ma tutto questo, a cosa serve? di certo non serve a fare un file jar? magari potrei saperlo e trovare la soluzione in altro modo o cercando su internet

    Sevenjeak
    Software developer and much more

  18. #18
    Guest

    Predefinito

    Praticamente Windows non trova il file jar.exe perché i comandi eseguiti vengono cercati in alcune path, contenute nella directory %PATH%. Con quel comando aggiungi alla path attuale la path in cui si dovrebbe trovare il file jar.exe, ma non sembra funzionare.

  19. #19
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Ho trovato il comando su internet e ho scritto in questo modo: set path=C:\Programmi\Java\jdk1.6.0_13\bin, ho provato con il comando echo %path% e funziona, mi stampa solamente il percorso inserito nella path, ora dovrei riprovare il comando jar?
    Ultima modifica di sevenjeak : 29-01-2010 alle ore 23.47.58

    Sevenjeak
    Software developer and much more

  20. #20
    Guest

    Predefinito

    Sì, prova...

  21. #21
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Stesso errore, non funziona

    EDIT:
    Ora funziona, sbagliavo solamente ha scrivere il manifest, pensava che nella main-class potevo scrivere anche un percorso relativo invece di un percorso assoluto,

    Cmq ora per eseguire il file jar?
    Ultima modifica di sevenjeak : 30-01-2010 alle ore 16.34.05

    Sevenjeak
    Software developer and much more

  22. #22
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    java -jar file.jar

    oppure se il sistema operativo è configurato, per aprire file jar con java web start, basta un doppio click

  23. #23
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Java-web-start lo già installato sul mio pc.

    Cmq provando il comando mi restituisce questo messaggio: Failed to load Main-Class Manifest attribute from app.jar

    Da quello che ho capito non riesce a caricare l'attributo Main-Class all'interno di MANIFEST.mf.

    Aprendo il file con winRAR e cercando il manifest, ho notato che nel manifest non mi ha inserito l'attributo Main-Class, ho provato a inserirlo manualmente ma mi restituisce questo messaggio: Invalid or currept jarfile app.jar
    Ultima modifica di sevenjeak : 31-01-2010 alle ore 13.25.30

    Sevenjeak
    Software developer and much more

  24. #24
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    cosa contiene il manifest?

    L'indispensabile è questo:

    Manifest-Version: 1.0
    Main-Class: percorso\alla\classe\da\avviare\NomeClasse

    e il percorso per raggiungere la classe sono i package da attraversare per raggiungerla

  25. #25
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Il manifest, prima della creazione del file jar, contiene questo:
    Codice:
    Manifest-Version: 1.0
    Created-By: 1.6.0_18 (Sun Microsystems Inc.)
    Main-Class: Percorso assoluto della classe contenente la funzione main
    Dopo la creazione dell file jar, aprendo il file, come se fosse un'archivio, il manifest contiene questo:
    Codice:
    Manifest-Version: 1.0
    Created-By: 1.6.0_18 (Sun Microsystems Inc.)
    Come mai nella creazione del file jar mi ha levato il Main-Class? per quel motivo mi appare l'errore da console?

    Sevenjeak
    Software developer and much more

  26. #26
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    Precisamente..... che formato ha la stringa che inizia con Main-Class ?


  27. #27
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Che vuoi dire con, che formato ha la stringa?

    Sevenjeak
    Software developer and much more

  28. #28
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    cosa e come l'hai scritto quelle che viene dopo Main-Class:

  29. #29
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Ho messo semplicemente il percorso della classe contenente il mail, in questo formato:
    C:\Documents and Settings\Simone\Desktop\class_main.class

    Sevenjeak
    Software developer and much more

  30. #30
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    Ecco, hai sbagliato.
    Andava scritto cosi

    Main-Class: class_main

    e, nel caso la classe fosse stata all'interno di un package di nome "Pacchetto", dovevi aggiungere il path in questo modo

    Main-Class: Pacchetto.class_main

Pagina 1 di 2 12 UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •