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

    Creazione e Inclusione applet java

    Ciao a tutti...premettendo non ho mai creato un applet java ma che con java ci programmo già da un po, avrei la necessità di crearne una da includere in una pagina jsp.
    A dire il vero il codice l'ho già scritto e testato su eclipse e tutto funziona(con il visualizzatore applet del programma).
    Quando provo ad importare la suddetta applet nella pagina jsp però i vari browser(mozilla e ie) mi danno un errore di tipo "classNotFoundException"...presumo non trovi il file .class ...

    Il file che contiene la mia classe si chiama Test.class ed è all'interno del package utilità del progetto(creato su eclipse)...

    dopo innumerevoli tentativi di inclusione, con path diversi sono costretto ad alzare bandiera bianca e chiedere aiuto a chi magari su queste cose c'ha già lavorato e quindi ha più esperienza di me sull'argomento...

    Devo fare qualche procedura particolare prima di includere la classe? importare librerie per renderla autonoma "client-side"??? veramente non so più che pesci prendere ed è una questione che devo assolutamente risolvere...

    please help me!

  2. #2
    nessuno mi sa indirizzare su qualche guida o mi sa aiutare??? per favore è urgente

  3. #3
    credo di essere riuscito a "far trovare" la classe tramite il percorso che indico.
    La classe è all'interno della cartella bin del jar file che ho creato tramite Eclipse. Questo jar lo importo tramite il parametro "archive" del tag "<jsplugin" della pagina jsp.

    Il problema che mi si presenta adesso, o meglio l'errore che mi butta fuori la console java è questo:
    Reading certificates from 11 http://localhost:8080/ProvaGrafico/provaGrafico.jar | C:\Documents and Settings\pietro.stracquadanio\Dati applicazioni\Sun\Java\Deployment\cache\6.0\46\177e 686e-32443e9e.idx
    java.lang.NullPointerException
    at sun.plugin2.applet.Plugin2Manager.findAppletJDKLev el(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unk nown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionR unnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Eccezione: java.lang.NullPointerException

    il tag nel quale importo l'applet è questo:
    Codice PHP:
    <jsp:plugin type="applet" code="Test" codebase="." width="450" height="500" archive="provaGrafico.jar">
    <
    jsp:fallback>Non visualizzi applet</jsp:fallback>
    </
    jsp:plugin
    come avrete capito la classe si chiama Test.class e si trova all'interno del file jar.
    l'albero all'interno del file jar è così composto:
    +meta-inf
    - manifest.mf
    -.classpath
    -.project
    -Test.class
    -Test.java

    Spero che queste informazioni che vi ho dato siano sufficienti per abbozzare qualche possibile soluzione perchè veramente non so più che altro provare(e di prove ne ho fatte tante...).
    Devo ASSOLUTAMENTE risolvere questo problema...

    Qualche anima pia mi potrebbe dare una mano??

    Grazie

  4. #4
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    fai qualche ricerca sul forum di come certificare un applet..
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  5. #5
    per fortuna ho risolto...però la soluzione che ho trovato non è di certo molto "elegante" e questo un pò mi rode...
    nello specifico ho dovuto scompattare le librerie(jar) che servivano alla classe all'interno della stessa cartella nella quale c'è la mia applet.

    Il punto è che all'interno del file jar che ho creato vi erano tutte le librerie necessarie a far funzionare la mia applet, però non riuscivo ad "indicare" tramite il tag "<applet" quindi con il code, codebase... dove andare a caricare la classe...

    c'è qualche guida in proposito? io non ne riesco a trovare di sufficientemente esplicative...

    se io avessi un applet all'interno di un file jar...tipo prova.jar...e volessi "riferirmi" all'applet prova.class all'interno di una sottocartella dentro il jar che si chiama ad esempio /bin...

    come dovrei settare gli attributi code codebase o archive del tag "applet"??

    Grazie a chi gentilmente volesse darmi una mano...

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da spiderman23
    nello specifico ho dovuto scompattare le librerie(jar) che servivano alla classe all'interno della stessa cartella nella quale c'è la mia applet.
    Può anche funzionare ... ma dovrebbe anche funzionare con il jar, ammesso che sia fatto correttamente e specificato bene in <applet>.

    Originariamente inviato da spiderman23
    Il punto è che all'interno del file jar che ho creato vi erano tutte le librerie necessarie a far funzionare la mia applet, però non riuscivo ad "indicare" tramite il tag "<applet" quindi con il code, codebase... dove andare a caricare la classe...

    c'è qualche guida in proposito? io non ne riesco a trovare di sufficientemente esplicative...
    Generalmente dovrebbe bastare quella ufficiale della Sun:
    The APPLET Tag

    e magari anche sul tutorial Sun:
    Deploying Applets

    Originariamente inviato da spiderman23
    se io avessi un applet all'interno di un file jar...tipo prova.jar...e volessi "riferirmi" all'applet prova.class all'interno di una sottocartella dentro il jar che si chiama ad esempio /bin...
    Dipende ... 'bin' è il nome del package della classe? Cioè nel sorgente hai messo:

    codice:
    package bin;
    
    public class prova { ... }
    Allora ok. Altrimenti no. La regola basilare dovresti saperla: i nomi dei package si devono sempre "riflettere" nella struttura delle cartelle. Per una classe com.pippo.Prova, il file Prova.class deve stare sotto un path com/pippo. Vale se il file è "sfuso" sul file-system ma anche se è in un jar! E quindi in un jar ci deve essere una cartella com con dentro una cartella pippo con dentro Prova.class.
    La cartella principale nel jar deve essere com ... non bin/com/pippo o altro!!!

    Originariamente inviato da spiderman23
    come dovrei settare gli attributi code codebase o archive del tag "applet"??
    Documentazione indicata sopra.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    beh...non sempre riflettono "perfettamente" il package...o meglio in parte...

    se io su eclipse creo una classe(MiaClasse.java) all'interno di un package che si chiama prova...nel mio progetto, quindi sfogliando le cartelle del progetto nel workspace, MiaClasse.java sarà all'interno della cartella src/prova/MiaClasse.java...mentre il compilato(MiaClasse.class) me lo troverò all'interno di build/classes/prova/MiaClasse.class...
    Se io esporto il progetto in un jar...e mi volessi riferire a MiaClasse.class nel tag <applet dovrei indicare il percorso nel quale si troverà il .class...

    boh...magari sbaglio ma di prove ne ho fatte un sacco proprio...piglia, sposta, cambia codebase...ma niente...il tag applet non riusciva a trovare la classe...

    attualmente comunque la mia classe è all'interno di nessun package...quindi da come ho capito dovrebbe stare all'esterno di tutto all'interno del jar file...e poi per richiamarla il tag è
    <applet code="MiaClasse.class" codebase=".">

    </applet>

    Grazie comunque per la risposta...

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da spiderman23
    beh...non sempre riflettono "perfettamente" il package...o meglio in parte...

    se io su eclipse creo una classe(MiaClasse.java) all'interno di un package che si chiama prova...nel mio progetto, quindi sfogliando le cartelle del progetto nel workspace, MiaClasse.java sarà all'interno della cartella src/prova/MiaClasse.java...mentre il compilato(MiaClasse.class) me lo troverò all'interno di build/classes/prova/MiaClasse.class...
    Ma la "base" non interessa .... nel senso che il package si chiama "prova"? Allora il file .class deve stare in una directory 'prova'. Ed è questa la "riflessione" dei nomi di package nella struttura delle cartelle.

    Che poi questa directory 'prova' sia in:

    C:\Pippo\prova\MiaClasse.class
    oppure
    C:\Progetti\NomeProgetto\build\classes\prova\MiaClasse.class
    oppure altro

    cambia ben poco ... e centra solo con il classpath. Nel senso che la directory che contiene la 'prova' (C:\Pippo o C:\Progetti\NomeProgetto\build\classes) deve essere in classpath. Tutto qui. Punto.

    Originariamente inviato da spiderman23
    Se io esporto il progetto in un jar...e mi volessi riferire a MiaClasse.class nel tag <applet dovrei indicare il percorso nel quale si troverà il .class...
    Nell'attributo ARCHIVE devi referenziare il jar e nell'attributo CODE devi mettere il nome "qualificato" della classe con .class alla fine: prova.MiaClasse.class

    Originariamente inviato da spiderman23
    attualmente comunque la mia classe è all'interno di nessun package...quindi da come ho capito dovrebbe stare all'esterno di tutto all'interno del jar file...e poi per richiamarla il tag è
    <applet code="MiaClasse.class" codebase=".">
    </applet>
    Se non ha package, il file MiaClasse.class deve stare alla "radice" dentro il jar, il code che hai messo è giusto ma devi anche usare ARCHIVE per indicare il jar.
    Il codebase se non lo metti (e con "." è superfluo) diventa lo stesso del documento.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.