PDA

View Full Version : [Java] Impossibile eseguire qualsiasi programma.


Xizor
17-10-2008, 16:34
Ciao a tutti. Ho provato a compilare un semplicissimo programma tramite l'ambiente di MS DOS, ma non funziona. Mi dice questo:

Exception in thread "main" java.lang.NoClassDefFoundError: Domanda
Caused by: java.lang.ClassNotFoundException: Domanda
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: Domanda. Program will exit.

Il programma è il seguente:

import java.io.*;
import java.lang.*;

class Domanda
{
public static void main (String args[])
{
System.out.println("Hello World");
}
}

Come mai non funziona?? :mc: :mc: :mc:

RaouL_BennetH
17-10-2008, 16:44
prima di compilare il tutto hai settato il classpath?

variabilepippo
17-10-2008, 16:46
Come cerchi di eseguirlo?

Dopo aver compilato il file domanda.java con javac domanda.java in domanda.class devi digitare:

java domanda + INVIO da linea di comando.

Xizor
17-10-2008, 16:48
Se scrivo "Path" sul DOS mi viene fuori:

PATH=C:\Programmi\Java\jdk1.6.0_10\bin

cioè il percorso del javac...non so se ho fatto giusto. Ho messo come variabile d'ambiente questo percorso con il nome Java. :confused:

Xizor
17-10-2008, 16:55
Come cerchi di eseguirlo?

Dopo aver compilato il file domanda.java con javac domanda.java in domanda.class devi digitare:

java domanda + INVIO da linea di comando.


Allora mi porto sulla cartella dove c'è il File Domanda.java

Poi scrivo "javac Domanda.java" e mi crea il Domanda.class senza problemi.

Poi scrivo "java Domanda" e mi viene quell'insieme di errori... Avrò settato male il Path forse boh. Però fa così con qualsiasi cosa scriva..."Java abcd" e fa così, Java esempio e fa così...ogni volta che scrivo Java + qualcosa.

RaouL_BennetH
17-10-2008, 17:09
prova a fare così allora:



java -cp . Domanda

Xizor
17-10-2008, 17:15
prova a fare così allora:



java -cp . Domanda




Quindi non è impostato il comando Java dal DOS...per questo non va. :confused:

Comunque grazie 1000. Ora funziona. ;)

Xizor
02-11-2008, 16:42
Adesso utilizzo Java con l'ambiente di sviluppo Textpad e non mi funziona più niente. :mc: :mc: :mc: :mc:

Compilo il programma e mi dice "Procedura completata correttamente".

Eseguo e dice:

Exception in thread "main" java.lang.NoClassDefFoundError: A
Caused by: java.lang.ClassNotFoundException: A
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: A. Program will exit.
Premere un tasto per continuare . . .



Se io invece faccio dal Prompt dei Comandi:

javac A.java
java -cp . A

Funziona tutto correttamente.

Come mai??? :cry: :cry: :cry:

banryu79
03-11-2008, 10:18
TextPad per compilare ed eseguire java: a me funziona.
La mia configurazione, sotto Configura>Preferenze>Strumenti>Compila Java

Comando:
javac.exe
---
Parametri:
$File
---
Cartella Iniziale:
$FileDir
---


sotto Configura>Preferenze>Strumenti>Esegue Applicazioni Java

Comando:
java.exe
---
Parametri:
$BaseName
---
Cartella Iniziale:
$FileDir
---


Significato parametri:
$File
(Il nome esteso del file del documento corrente, comprensivo del percorso)
--
$FileDir
(viene sostituito con la cartella del documento attivo)
--
$BaseName
(è come $FileName, senza estensione)
--
$FileName
(Il nome del file del documento corrente, senza percorso)
--

Xizor
03-11-2008, 13:01
TextPad per compilare ed eseguire java: a me funziona.
La mia configurazione, sotto Configura>Preferenze>Strumenti>Compila Java

Comando:
javac.exe
---
Parametri:
$File
---
Cartella Iniziale:
$FileDir
---


sotto Configura>Preferenze>Strumenti>Esegue Applicazioni Java

Comando:
java.exe
---
Parametri:
$BaseName
---
Cartella Iniziale:
$FileDir
---


Significato parametri:
$File
(Il nome esteso del file del documento corrente, comprensivo del percorso)
--
$FileDir
(viene sostituito con la cartella del documento attivo)
--
$BaseName
(è come $FileName, senza estensione)
--
$FileName
(Il nome del file del documento corrente, senza percorso)
--

Se io vado su "Strumenti", ci sono 3 voci:

- Compila Java
- Esegui applicazione Java
- Esegui applet Java

Poi accanto posso eliminare o aggiungere un'ulteriore voce. :stordita:

EDIT:

Scusa dai, mi sono accorto del menù ad albero in ritardo.

Comunque ho controllato e i parametri che hai scritto sono quelli che ci sono anche nel mio TextPad. Però, al posto di $File ad esempio, devo metterci il nome esteso del file?? O è giusto che ci sia $File?

^TiGeRShArK^
03-11-2008, 14:40
prova a modificare la variabile d'ambiente classpath aggiungendo alla fine dell'elenco il .
Se ad esempio hai nel CLASSPATH
c:\ciccio;c:\pippo
devi farlo diventare c:\ciccio;c:\pippo;.

banryu79
03-11-2008, 15:40
Se in TextPad la configurazione è la stessa di quella che ti ho postato allora come suggerisce TigerShark è un problema di classpath.

Xizor
03-11-2008, 20:07
prova a modificare la variabile d'ambiente classpath aggiungendo alla fine dell'elenco il .
Se ad esempio hai nel CLASSPATH
c:\ciccio;c:\pippo
devi farlo diventare c:\ciccio;c:\pippo;.


Il Classpath devo metterlo in variabili dell'utente o variabili di sistema??

Cmq sul classpath ho messo:

C:\j2sdk1.4.2_13\lib

Non so se ho fatto giusto..:mc:

^TiGeRShArK^
03-11-2008, 20:13
Il Classpath devo metterlo in variabili dell'utente o variabili di sistema??

Cmq sul classpath ho messo:

C:\j2sdk1.4.2_13\lib

Non so se ho fatto giusto..:mc:

:mbe:
nel 2008 usi ancora java 1.4? :mbe:
Comunque devi semplicemente aggiungere un punto finale al classpath in tutte e due le variabili, separato da un punto e virgola come ti avevo mostrato nel mio post precedente....

Xizor
03-11-2008, 20:16
:mbe:
nel 2008 usi ancora java 1.4? :mbe:
Comunque devi semplicemente aggiungere un punto finale al classpath in tutte e due le variabili, separato da un punto e virgola come ti avevo mostrato nel mio post precedente....

:D :D :D Eh scusa ma non so le ultime versioni quali sono :stordita:

Così quindi? :
C:\j2sdk1.4.2_13\lib;.

^TiGeRShArK^
03-11-2008, 21:04
:D :D :D Eh scusa ma non so le ultime versioni quali sono :stordita:

Così quindi? :
C:\j2sdk1.4.2_13\lib;.

yes..
così ad occhio dovrebbe andare..
l'ultima versione è questa:
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u10-oth-JPR@CDS-CDS_Developer

Java 6 Update X