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

    [Java] problema con la creazione di un jar

    Ciao a tutti
    dunque....io ho un problemino e non riesco a trovare soluzione da nessuna parte...ho cercato soluzioni su google e ho provato ad usare le soluzioni che usavano persone che si sono trovate in situazioni simili alla mia....ma nessuna ha funzionato. :master:

    Spero in un provvidenziale aiuto di qualcuno di voi
    ho tanto l'impressione che proprio perchè non si trova soluzione alla fine sia una scemenza a creare l'errore...

    Allora, in breve:
    io ho creato un piccolo software in java, che lavora con una dll.
    A dati eventi interroga la dll su alcune cose e ne riceve risposta.
    Per permettere la comunicazione tra la classe java e la dll uso NLink ( https://nlink.dev.java.net/ ).
    Questo consiste in due files: NLink.jar e NLink.dll.
    In piu, per il software uso LWJGL (Lightweight Java Game Library).
    Anche quesa è composta da un lwjgl.jar e un lwjgl.dll


    Riassumendo io ho:
    - le mie classi java
    - la mia dll
    - Nlink.jar
    - Nlink.dll
    - lwjgl.jar
    - lwjgl.dll



    Il progetto l'ho creato su Windows, originariamente ho lavorato con NetBeans, ma poi l'ho importato in Eclipse e l'ho sistemato in modo che funzionasse li.

    Così com'è, è completamente funzionante. Ma lo devo mettere in un jar.
    Per farlo uso la funzione wizard di Eclipse:
    - clicco con il destro sul progetto,
    - scelgo Export e scelgo di esportarlo in un file JAR.
    - Scelgo di allegare le 3 dll al resto delle classi java
    - di crearlo nella cartella principale del progetto,
    - scelgo di creare il file manifest automaticamente e scelgo la Main class del progetto.
    - poi gli do l'ok per creare il JAR e lo crea.

    E fin qua tutto bene, ora arriva il problema
    vado nel prompt per eseguire il jar e mi riporta questo errore:


    Exception in thread "main" java.lang.NoClassDefFoundError: org/lwjgl/LWJGLException
    Caused by: java.lang.ClassNotFoundException: org.lwjgl.LWJGLException
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)




    Ho provato a creare io il manifest, a ricostruire il progetto, ad allegare o meno le dll, a mettere i jar in cartelle diverse, e tante altre cose... ma non ci salto fuori.....


    Io ho provato a descrivere alla larga com'è il mio progetto e qual'è l'errore.........
    cosa pensate che possa causarlo? avete qualche idea, consiglio, soluzione?
    Se avete bisogno di altri dati per capire il problema chiedetemeli pure ;o)

  2. #2

  3. #3
    Posta il contenuto del file MANIFEST e la struttura delle tue cartelle
    Al mio segnale... scatenate l'inferno!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    4
    edit: scusate ho sbagliato forum -.- oggi sono impedito

  5. #5
    Dunque allora
    il manifest è:

    Manifest-Version: 1.0
    Main-Class: org.jcp.test.TestJCP.java
    Class-Path: . lwjgl.jar nlink.jar




    e la struttura delle tabelle è questa:

    --- cartella principale ---
    \

    lwjgl.dll
    lwjgl.jar
    nlink.dll
    nlink.jar
    mia.dll
    jcp.mf

    --- cartella dei .class ---
    \bin\org\jcp\test\

    tutti i vari files .class


    --- cartella dei source files ---
    \src\org\jcp\test\

    tutti i vari files .java




    quando costruisco il jar lo faccio posizionare da Eclipse nella cartella principale...

  6. #6
    Metti i file jar esterni in una cartella a parte (ad esempio lib) e modifica il file MANIFEST:

    Class-Path: lib/primoJar.jar lib/secondoJar.jar ecc...

    Ricorda che il file MANIFEST deve terminare con due righe vuote.

    La cartella lib appena creata deve stare allo stesso livello del jar della tua applicazione (non all'interno del jar). Quindi ad esempio la cartella

    C:\TuaCartella\TuaApplicazione

    deve contenere il tuo jar e la cartella lib.
    Al mio segnale... scatenate l'inferno!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.