|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
[Java] Primi passi con java non mi compila
Ciao...ho iniziato oggi a studiare per un esame universitario che fà uso di Java...ho provato a fare il primo esempio portato in classe dalla professoressa ma non mi compila (mi pare di avere installato la jsdk...)
Si trata di due classi: una che definisce il tipo di dato InteroPositivoPari contenente il costruttore, un metodo d'istanza somma ed un metodo di classe per vedere se un numero è coerente con quel tipo di dato. Ed una seconda classe TestInteroPositivoPari che contiene il metodo main per far girare il tutto. I codici delle due classi sono i seguenti: Codice:
class InteroPositivoPari{
int n; // E' la variabile di istanza
/* Il costruttore */
InteroPositivoPari(int k){
if(k >= 0 && k%2 == 0) n = k;
else n = 1;
}
/* Il metodo di istanza che esegue la somma dell'oggeto ricevente con l'oggetto di tipo InteroPositivoPari referenziato
dal parametro altro */
InteroPositivoPari somma(InteroPositivoPari altro){
int k;
InteroPositivoPari risultato;
if(this.n != 1 && altro.n != 1)
k = this.n + altro.n;
else k = 1;
risultato = new InteroPositivoPari(k);
return risultato;
}
/* Il metodo di classe che verifica se il parametro h è un intero positivo pari o meno, restituisce 1 nel primo caso, 0
altrimenti */
public static int verificaSeInteroPositivoPari(int h){
int esito = 0;
if(h >= 0 && h%2 == 0) esito = 1M
}
}
Codice:
class TestInteroPositivoPari{
/* Il metodo main è necessariamente un metodo di classe */
public static void main(String[] args){
int k;
InteroPositivoPari N, M, P;
N = new InteroPositivoPari(4);
M = new InteroPositivoPari(6);
P = N.somma(M); // N è l'oggetto ricevente
/* Nell'istruzione che segue la classe InteroPositivoPari è la classe ricevente */
k = InteroPositivoPari.verificaSeInteroPositivoPari(3);
}
}
C:\Programmi\Crimson Editor\template\esercizi\InteroPositivoPari>javac TestInteroPositivoPari.java "javac" non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch. Come mai sta cosa? cosa sbaglio? dov'è l'inghippo? Grazie Andrea |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
quel messaggio dovrebbe voler indicare che in qualche modo non trova il jdk..
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
Hai impostato correttamente il path della jdk nelle variabili d'ambiente?
__________________
iMac 27" 5K |
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
|
|
|
|
|
|
#5 | |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
Quote:
ora la domanda è: come faccio a cambiare queste variabili e a fare in modo che mi riconosca il comanda javac anche in altre directory? Grazie Andrea |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1059
|
vai in Risorse del Computer e successivamente su Proprietà, scheda Avanzate e clicca sul pulsante in basso Variabili d'ambiente, dopo di che modifica la variabile di sistema PATH aggiungendo alla fine la stringa: C:\Programmi\Java\jdk1.6.0_03\bin;
|
|
|
|
|
|
#7 | |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
Quote:
.;C:\Programmi\Java\jre1.6.0_05\lib\ext\QTJava.zip;C:\Programmi\Java\jdk1.6.0_03\bin; però continua a non funzionare... |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1059
|
devi modificare la variabile PATH non classpath
|
|
|
|
|
|
#9 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
nada
Ho provato a cambiare il valore della variabile Path ed ora nel campo valore di tale variabile c'è: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Programmi\ATI Technologies\ATI Control Panel;C:\PROGRA~1\SECUREFX;C:\Programmi\File comuni\Adobe\AGL;C:\PROGRA~1\SECURE~1;C:\Programmi\MySQL\MySQL Server 5.0\bin;C:\Programmi\QuickTime\QTSystem\;.;C:\Programmi\Java\jre1.6.0_05\lib\ext\QTJava.zip;C:\Programmi\Java\jdk1.6.0_03\bin; continua a non funzionare...come mai? da che può dipendere? se non risolvo mi impicco |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1059
|
Quote:
Ultima modifica di Energy++ : 09-11-2008 alle 23:12. |
|
|
|
|
|
|
#11 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1059
|
Codice:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Programmi\ATI Technologies\ATI Control Panel;C:\PROGRA~1\SECUREFX;C:\Programmi\File comuni\Adobe\AGL;C:\PROGRA~1\SECURE~1;C:\Programmi\MySQL\MySQL Server 5.0\bin;C:\Programmi\QuickTime\QTSystem\;C:\Programmi\Java\jre1.6.0_05\lib\ext\QTJava.zip;C:\Programmi\Java\jdk1.6.0_03\bin; |
|
|
|
|
|
#13 | |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
Quote:
altra domandina...cosa contiene la variabile d'ambiente classpath? c'entra qualcosa con java? Grazie Andrea |
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1059
|
no con java non centra, anzi se la rimetti come prima è meglio
che errori ti da il codice? |
|
|
|
|
|
#15 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
ok...risolto gli errori nel codice, compilato e prodotto i 2 file .class
Se però provo ad eseguire dalla shell di dos il file TestInteroPositivoPari.class mi si apre una finestrella che mi dice: "Impossibile aprire il file...blabla...selezionare il programma con cui aprirlo"...perchè?!?!!? |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
devi lanciare la classe contenente il main..
|
|
|
|
|
|
#17 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1059
|
per eseguire i programmi in java devi sempre utilizzare la java virtual machine quindi per avviare il tuo file devi scrivere nel prompt:
java TestInteroPositivoPari |
|
|
|
|
|
#19 | |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
Quote:
Ora sto programma non fà nulla visto che non dà output ne prende input...quando l'ho lanciato mi dà questo messaggio: Microsoft Windows XP [Versione 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Programmi\Crimson Editor\template\esercizi\InteroPositivoPari>java TestInteroPositivoPari.class Exception in thread "main" java.lang.NoClassDefFoundError: TestInteroPositivoPari/class Caused by: java.lang.ClassNotFoundException: TestInteroPositivoPari.class 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) C:\Programmi\Crimson Editor\template\esercizi\InteroPositivoPari> C:\Programmi\Crimson Editor\template\esercizi\InteroPositivoPari> E' normale? che vuol dire? Tnx Andrea |
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1059
|
ma il file che stai eseguendo contiene il metodo main??
public static void main(String [] args) ?? |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:26.




















