View Full Version : Aiuto con Java!!!
Diego Armando
12-11-2003, 11:52
Ciao a tutti!!!
Ho scritto il seguente programma in java, includendo la libreria jena per la gestione delle ontologie...
import com.hp.hpl.jena.daml.*;
import com.hp.hpl.jena.daml.common.DAMLModelImpl;
import com.hp.hpl.mesa.rdf.jena.model.*;
import java.io.*;
import java.util.Iterator;
public class damlexercise {
/**
* @param args the command line is ignored.
*/
public static void main(String args[]) throws RDFException {
DAMLModel model = new DAMLModelImpl();
model.read("file:///C:/windows/desktop/jdbc/jena/vcard-daml.rdf");
Iterator it = model.listDAMLClasses();
while (it.hasNext()) {
DAMLClass c = (DAMLClass)it.next();
System.out.println(c.toString());
}
}
}
Ho settato il classpath in modo da trovare il file jena.jar e ho compilato con successo.
Poi ho cercato di lanciare il programma riscontrando un errore...
Questo è quello che ho fatto:
C:\j2sdk1.4.1_02\bin>javac damlexercise.java -classpath "c:\jena\jena-1.4.0\lib\jena.jar"
C:\j2sdk1.4.1_02\bin>set classpath=.
C:\j2sdk1.4.1_02\bin>java damlexercise.class
Exception in thread "main"java.lang.NoClassDefFoundError:damlexercise/java
C:\j2sdk1.4.1_02\bin>
Dove sbaglio?
Grazie per le eventuali risposte...
qando esegui il comando java devi specificare il nome del file senza l'estensione .class
C:\j2sdk1.4.1_02\bin>java damlexercise.class
diventa
C:\j2sdk1.4.1_02\bin>java damlexercise
Il punto serve x la navigazione all'interno dei packages
PS: Ho come l'impressione ke tu e MSTR siate la stessa persona. Vedi d nn incasinare il forum con 1700 nick diversi plz
Io a queste domande non rispondo +...soprattutto dopo che ho scritto un topic con tutte queste nozioni basilari 3 righe + sotto...
Hai anke tu le tue ragioni...
Diego Armando
12-11-2003, 14:15
Molz...ho fatto come hai detto tu ma mi da lo stesso errore...
C:\j2sdk1.4.1_02\bin>java damlexercise
Exception in thread "main" java.lang.NoClassDefFoundError: damlexercise
Io e MSTR non siamo la stessa persona...ci conosciamo e stiamo lavorando tutti e due con le API Jena...ma ognuno per i fatti suoi...
scusa...che senso avrebbe avere due nick???
metti
-classpath ".;c:\jena\jena-1.4.0\lib\jena.jar"
e soprattutto leggi il post di cn73 :mad:
Diego Armando
12-11-2003, 14:25
Cn73..ho letto il tuo contributo...ma continuo a non capire l'errore...io ho settato il CLASSPATH indicando dove si trovano le Api Jena..ho fatto esattamente ciò che hai scritto ma continua a darmi lo stesso errore...perchè?
Diego Armando
12-11-2003, 14:29
Ho fatto anche questo...ma continuo ad avere lo stesso errore...
C:\j2sdk1.4.1_02\bin>java damlexercise classpath ".;c:\jena\jena-1.4.0_\lib\jena.jar"
Exception in thread "main" java.lang.NoClassDefFoundError: damlexercise
Mi viene un dubbio :rolleyes: Non è che questa classe appartiene a un package??
Ho capito:
C:\j2sdk1.4.1_02\bin>java damlexercise
Exception in thread "main" java.lang.NoClassDefFoundError: damlexercise
Perchè esegui da C:\j2sdk1.4.1_02\bin?????
devi eseguire dalla directory contenente damlexercise.class
Diego Armando
12-11-2003, 16:48
No la classe non appartiene a un package...eseguo da \bin per comodità...damlexercise è in \bin...
Non so più dove sbattere la testa :muro:
Ma una volta settato il classpath indicante il file.jar contenente gli import e dopo che la compilazione mi ha dato esito positivo non dovrebbero + esserci errori?Non capisco cosa gli manca...
Originariamente inviato da Diego Armando
No la classe non appartiene a un package...eseguo da \bin per comodità...damlexercise è in \bin...
Non so più dove sbattere la testa :muro:
Ma una volta settato il classpath indicante il file.jar contenente gli import e dopo che la compilazione mi ha dato esito positivo non dovrebbero + esserci errori?Non capisco cosa gli manca...
lancia dalla directory che contiene damlexercise :
C:\j2sdk1.4.1_02\bin\java -classpath ".;c:\jena\jena-1.4.0_\lib\jena.jar" damlexercise
e fai attenzione a maiuscole-minuscole
Originariamente inviato da Molz
PS: Ho come l'impressione ke tu e MSTR siate la stessa persona. Vedi d nn incasinare il forum con 1700 nick diversi plz
e tu vedi di non fare accuse gratuite plz :rolleyes: ..
Originariamente inviato da cn73
Mi viene un dubbio :rolleyes: Non è che questa classe appartiene a un package??
ehm.. forse il problema è qui, che la classe damlexercise debba essere qualificata con il nome del suo package, e quindi il comando
java damlexercise
non funzionerà mai..
ho provato anch'io tutta sera a farlo andare ma non ci sono riuscito.
Il problema è: come faccio ad avere la certezza che la classe appartenga a un package? e poi, a quale package?
cn73, ho letto diversi tuoi interventi su problemi simili, ho provato non so quante soluzioni ma questo problema non riesco a risolverlo.. ho cercato anche sui miei libri ma la documentazione è poco chiara... abbi pazienza, immagino che ti avranno fatto queste domande 1000 volte e che per te ormai siano problemi banali, ma sia io che Diego abbiamo iniziato da poco con java, e nessuno nasce maestro..
e cmq sono molto grato a tutti voi che cercate di aiutare noi inesperti! :)
Ciao
No guarda, così com'è scritta dovrebbe funzionare...
Riguardo al tuo discorso, il mio atteggiamento è rivolto solo a chi non prova a documentarsi prima, prova una volta ba lònciare il prgramma e poi corre subito a scrivere titoloni allarmanti... Se tu hai davvero provato in tutte le salse e ti sei documentato, qui troverai sempre aiuto...perchè il problema diventa particolare, interessante, stimolante... dove si scaricano ste API? Che provo io...
Anz me le cerco con google :D
Allora, questo è quello che ho fatto io:
ho scaricato le librerie jena1.4.0 e le ho scompattate in una directory e poi ho creato nella stessa directory un batch così:
SET PATH=C:\jdk1.3.1_05\BIN
SET JENA_HOME=.\Jena-1.4.0\lib\jena.jar
set CLASSPATH=.;%JENA_HOME%
ho compilato con javac DamlExercise.java (un appunto...i nomi delle classi per convenzione vanno con l'iniziale MAIUSCOLA)
tutto ok.
Poi ho eseguito con
java DamlExercise
il programma è partito...mi ha dato eccezioni, ma di runtime, questa è un'altra storia!
Ok risolti anche gli errori di runtime...Ho scaricato il file vcard-daml.rdf cui si fa riferimento nel mail e ho settato questo CLASSPATH
REM ----installazione jdk
rem Inserire qui il percorso della JVM
SET PATH=C:\jdk1.3.1_05\BIN
SET LIB_HOME=.\Jena-1.4.0\lib
SET JENA_HOME=%LIB_HOME%\jena.jar;%LIB_HOME%\rdf-api-2001-01-19.jar;%LIB_HOME%\concurrent-1.3.0.jar;%LIB_HOME%\db3-3-11.jar;%LIB_HOME%\jakarta-oro-2.0.5.jar;%LIB_HOME%\junit.jar;%LIB_HOME%\rdffilter.jar;%LIB_HOME%\xerces.jar
set CLASSPATH=.;%LIB_HOME%;%JENA_HOME%
lanciando il programma si ha questo output:
C:\Marco\varie\jena>java DamlExercise
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#NPROPERTIES>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#LABELTYPES>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#video>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#pager>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#TELTYPES>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#pref>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#ADRTYPES>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#cell>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#RDFAnon1>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#postal>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#work>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#EMAILTYPES>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#home>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#isdn>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#voice>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#VCARD>
<DAMLRestriction http://www.w3.org/2001/vcard-rdf/3.0#RDFAnon2>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#modem>
<Anonymous 0 DAMLRestriction@ccd50442>
<Anonymous 1 DAMLRestriction@ccd5043d>
<Anonymous 2 DAMLRestriction@ccd4ff6a>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#ADRPROPERTIES>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#ORGPROPERTIES>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#internet>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#fax>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#pcs>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#car>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#dom>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#msg>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#bbs>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#parcel>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#intl>
<DAMLClass http://www.w3.org/2001/vcard-rdf/3.0#x400>
Ho fatto come hai detto tu e funziona..
A differenza di usare un file batch, io gestivo il classpath o attraverso il comando -classpath, oppure su
proprietà di risorse del computer->avanzate->variabili d'ambiente
pensando fosse la stessa cosa... ma allora sono operazioni diverse da quella che hai postato tu? Oppure più probabilmente sbagliavo la sintassi del classpath? :confused:
cmq.. grazie mille dell'aiuto!
Originariamente inviato da Diego Armando
Ho fatto anche questo...ma continuo ad avere lo stesso errore...
C:\j2sdk1.4.1_02\bin>java damlexercise classpath ".;c:\jena\jena-1.4.0_\lib\jena.jar"
Exception in thread "main" java.lang.NoClassDefFoundError: damlexercise
Questo era sbagliato, la sintassi è
java -classpath .... MiaClasse.
Così deve funzionare...
Diego Armando
13-11-2003, 17:07
Grazie mille...sei un grande...
Originariamente inviato da Diego Armando
Grazie mille...sei un grande...
:O :sofico:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.