Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - settare il classpath per l'esecuzione di programmi java
Forum - Java - settare il classpath per l'esecuzione di programmi java

Avatar
Petrie (Normal User)
Newbie


Messaggi: 4
Iscritto: 07/03/2009

Segnala al moderatore
Postato alle 16:11
Sabato, 07/03/2009
Salve a tutti ho un problema con l'esecuzione di un semplice programma di prova con java, come da oggetto

Dunque il problema dovrebbe essere essenzialmente nel settaggio del classpath.
Nella cartella C:\poo\geometria ho creato il file PointUtil.java (che ha come prima riga package geometria;) e l ho compilato creando il PointUtil.class;

N.B.=sia la compilazione che l'esecuzione di questo e altri file avvengono dal DOS, con texpad e simili il problema non si presenta (anche se non ho capito il perchè).

Ora, nella cartella C:\poo vi è il file ProvaPoint.java: come prima riga di codice esso ha import geometria.*;
Anch'esso viene compilato e nella cartella C:\poo si trova ora il file ProvaPoint.class

A questo punto tento l esecuzione del ProvaPoint.class con questo comando su DOS
java C:\poo\ProvaPoint (per quel che so l'estensione non va scritta, ma il problema si presenta uguale anche specificandola).

L'errore che mi da è :
Exception in thread "main": java.lang.NoClassDefFoundError: C:\poo\ProvaPoint
-----
----
----
Could not find the main class: C:\poo\ProvaPoint. Programm will exit.

Segnalo anche che il classpath contiene:
.;C:\Programmi\Java\jre6\lib\ext\QTJava.zip;C:\poo\

Potreste segnalarmi gli errori che compio in questo procedimento?
Grazie anticipatamente

PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 17:03
Sabato, 07/03/2009
Per esperienza ti dico che quell'errore lì mi è capitato quando io eseguivo un oggetto .class e non vi era presente il metodo main. Solitamente accadeva che scrivevo il main con l'iniziale maiuscola o altre cose così.
Quindi guardaci, nel caso posta il codice che così possiamo darci un'occhiata :k:

PM Quote
Avatar
Petrie (Normal User)
Newbie


Messaggi: 4
Iscritto: 07/03/2009

Segnala al moderatore
Postato alle 17:16
Sabato, 07/03/2009
Ho controllato come hai detto tu, ma solitamente se c'è un errore di sintassi non dovrebbe avvenire neanche la compilazione; inoltre il codice è banale si trattava solo di provare un esecuzione dal DOS in quanto fino ad ora ho sempre usato editor come texpad e simili.
Ecco il codice delle due classi, PointUtil e ProvaPoint

//PointUtil.java
package geometria;
    public class PointUtil{
        public static double distance (double x1,double x2,double y1, double y2){
            double dx=x1-x2; double dy=y1-y2;
                return Math.sqrt(dx*dx+dy*dy);
        }
    }


//ProvaPoint.java
import geometria.PointUtil;
public class ProvaPoint{
    public static void main(String[]args){
        double ax=1.0;double ay=2.0;double bx=3.0;double by=4.0;
            double d=PointUtil.distance(ax,bx,ay,by);
        System.out.println(d);
    }
}

Grazie ancora

PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 17:35
Sabato, 07/03/2009
In qualche modo si è risolto ^^
Per prima cosa da console ti sposti nella cartella dove sei con ProvaPoint.java
In sostanza quando compili devi scrivere :

Codice sorgente - presumibilmente Plain Text

  1. javac ProvaPoint.java .\geometria\PointUtil.java



poi esegui scrivendo

Codice sorgente - presumibilmente Plain Text

  1. java ProvaPoint



e va che è una meraviglia.

Secondo me il tuo errore è che non compilavi PoinUtil.java

PM Quote
Avatar
Petrie (Normal User)
Newbie


Messaggi: 4
Iscritto: 07/03/2009

Segnala al moderatore
Postato alle 17:49
Sabato, 07/03/2009
Perdonami ma l'hai provato sul tuo pc? Perchè sul mio non va:-|
Inoltre PointUtil (che è salvato in C:\poo\geometria\) l'avevo compilato eccome, con

javac C:\poo\geometria\PointUtil1.java

e nella cartella C:\poo\geometria si era creato anche il PointUtil.class
solo dopo ho compilato ProvaPoint.java (che è salvato in C:\poo\) con il comando

javac C:\poo\ProvaPoint.java

e nella stessa cartella si è creato il ProvaPoint.class che però non riesco ad eseguire neppure con il comando che mi hai consgliato tu.

In breve, non so che pesci prendere :(

PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 17:59
Sabato, 07/03/2009
guarda, ti posto l'immagine della console

comunque a me non da problemi


andrea.b89 ha allegato un file: Immagine.JPG (32450 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
Petrie (Normal User)
Newbie


Messaggi: 4
Iscritto: 07/03/2009

Segnala al moderatore
Postato alle 18:51
Sabato, 07/03/2009
Ok, non so proprio come ringraziarti per l'aiuto (e per la pazienza).
Ciao, grazie ancora

PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 18:57
Sabato, 07/03/2009
prego nessun problema ^^

PM Quote