Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [Java] Problemi Jar

    Ciao sto cercando di creare un file jar , ho creato il file manifest, nell'applicazione ci sono delle icone , un file .properties e ovviamente i file class,
    lancio il commando :
    jar cvf JEditorPad.jar notepad/MANIFEST.MF notepad/*.class notepad/*.gif notepad/*.jpg
    notepad/resource/options.properties

    lo crea correttamente ma poi se vado ad aprire il file jar creato mi dice

    Failed to load Main-Class manifest attribute from D:\...\JEditorPad.jar

    presumo che il probelma sta nel file MF che è composto da queste righe

    Manifest-Version: 1.0
    Main-Class: notepad.JEditorPad

    + una riga vuota....

    Cosa potrebbe essere l'errore?
    Chi mi può aiutare?

    ciao

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Il file MANIFEST.MF deve necessariamente trovarsi dentro ad una directory chiamata META-INF. Questa viene automaticamente creata all'interno del JAR e vi viene inserito un file MANIFEST.MF standard. E' quello che viene letto per caricare il tutto.

    Tieni presente, poi, che la struttura di directory deve rispecchiare quella originale per l'esecuzione del programma.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Grazie ancora Lele ma provando mi da lo steso errore .... provo a spiegasrtio come è composta la struttura dell'applicazione, magari questo errore è dovuto a questo..
    c' è il package che è notepad, dentro questa cartella ci sono i file class dell'applicazione , le icone , il file manifest, e una cartella resource dove all'interno c'è il file properties , lancio nuovamente il file batch col commando
    jar cvf JEditorPad.jar notepad/MANIFEST.MF notepad/*.class notepad/*.gif notepad/*.jpg
    notepad/resource/options.properties

    ma l'errore è sempre Failed to load Main-Class manifest attribute from D:\...\JEditorPad.jar ,
    ho fatto una prova con exe4j a creare l'eseguibile , ma creato l'eseguibile poi lo lancio mi da degli errori anche quello...

    boh ... :rollo:

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Dovresti aprire il .JAR per vedere com'è strutturato. Dubito che il comando JAR metta il tuo Manifest esattamente dove deve andare, quanto piuttosto credo che lo prenda come un file normale.

    Per aprire il JAR e vederne la struttura puoi usare tranquillamente WinZIP o WinRAR.
    Controlla che la struttura rispecchi esattamente quella della tua applicazione. Ad esempio, se hai utilizzato la direttiva package dovrai controllare che la struttura di directory rispecchi quanto descritto da tale direttiva.

    Poi controlla che nella directory META-INF ci sia il tuo manifest.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Ciao Lele ho provato, mi crea correttamente la directory meta-Inf , tutto a posto , ma il problema persiste...
    Mi sta vendendo un dubbio, la mia applicazione legge , appena lanciata, dal file options.properties alcune caratteristiche , come la grandezza del frame, la posizione dello stesso ,il colore del font, il font stesso, e così alla chiusura dell'applicazione gli stessi dati vengono salvati nel file di properties. Ma non è che quando quel file è all'interno di un jar non può essere letto e viceversa? sto iniziando a preoccuparmi...

    In questo momento non ho modo di poter verificare... secondo te può essere così?

    Ti ringrazio per la disponibilità ...

    Ciao

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Il file di properties può essere letto (previe alcune precauzioni su come raggiungere il file). Certamente non può essere scritto se non attraverso stratagemmi a dir poco sofisticati (cancellazione dal JAR, riscrittura su disco e reinserimento nel JAR...).


    Ma l'errore che hai postato indica chiaramente che non riesce a trovare nel JAR l'attributo Main-Class all'interno del MANIFEST.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.