PDA

Visualizza la versione completa : [JAVA] Problema thread e monitor


Ed_Bunker
06-10-2003, 23:29
Ciao a tutti,
vi scrivo perche' ho alcuni problemi nella configurazione di Java (Su mandrake 9 con SDK1.4.2_01).
Ho provato a modificare il file .bashrc per mettere il PATH ma, quando digito, a prompt, 'source .bashrc' mi viene "restituita" la stringa 'bash: TMOUT: readonly variable'.
Da 'centro di controllo' ho provato anche a modificare il tipo di shell mettendo tcsh come predefinita ma, volendo modificare il PATH, ho provato ad editare il file .cshrc con il risultato che questo non esiste.

Inoltre ho questo problema (in realta' e' per questo che provavo a modificare il path; non credo, pero', che sia quella la 'fonte' del problema): ho provato un esercizio presente sulla mia dispensa universitaria e mentre la classe che 'realizza' un 'monitor' e la classe ceh estende la classe 'Thread' compilano correttamente il main mi restituisce questo... papiro:

javac FibonacciMain.java
java.lang.ArrayIndexOutOfBoundsException
at at.dms.kjc.CClassOrInterfaceType.getArguments(CCla ssOrInterfaceType.java:180)
at at.dms.kjc.CReferenceType.equals(CReferenceType.ja va:293)
at at.dms.kjc.JExpression.convertType(JExpression.jav a:256)
at at.dms.kjc.JUnqualifiedInstanceCreation.analyse(JU nqualifiedInstanceCreation.java:170)
at at.dms.kjc.JAssignmentExpression.analyse(JAssignme ntExpression.java:94)
at at.dms.kjc.JExpressionStatement.analyse(JExpressio nStatement.java:65)
at at.dms.kjc.JBlock.analyse(JBlock.java:88)
at at.dms.kjc.JForStatement.analyse(JForStatement.jav a:108)
at at.dms.kjc.JBlock.analyse(JBlock.java:88)
at at.dms.kjc.JMethodDeclaration.checkBody1(JMethodDe claration.java:217)
at at.dms.kjc.JClassDeclaration.checkTypeBody(JClassD eclaration.java:470)
at at.dms.kjc.JCompilationUnit.checkBody(JCompilation Unit.java:248)
at at.dms.kjc.Main.checkBody(Main.java:417)
at at.dms.kjc.Main.run(Main.java:187)
at at.dms.kjc.Main.compile(Main.java:69)
at at.dms.kjc.Main.main(Main.java:60)

Compilation finished at Fri Oct 3 11:36:20

Preciso che ho provato altri programmi che riguardano thread e monitor e tutti mi restituiscono questo errore.
I programmi che non fanno utilizzo di monitor (ed in particolare dei costrutti wait() e notify() invece compilano ed eseguono correttamente). Ed inoltre lo stesso programma l'ho provato sulle macchine della mia facolta' col risultato che girava correttamente.

Sapreste aiutarmi? Errore di configurazione di sdk o cosa?
(Ho gia' controllato il fatto che non siano presenti piu' versioni di SDK contemporaneamente)

Grazie e scusate se mi sono dilungato troppo.
Stefano Iardella.

Fox82
07-10-2003, 01:14
L'errore in questione dipende dal fatto che il tuo programma accede ad una posizione inesistente di un array.

Es. se l'array ha dimensione 5, stai tentando di accedere ad array[8]

Prova a controllare i cicli for o comunque le parti di codice dove utilizzi un array

Ed_Bunker
07-10-2003, 01:27
Ho capito anch'io il tipo di eccezione lanciata. Ovvero che esiste un riferimento ad un indice fuori dalla lunghezza dell'array.
Ma, come gia' detto, lo stesso identico programma compila e gira perfettamente su altre macchine. (Inoltre non utilizzo nessun tipo di array)

Per di piu' gli errori segnalati appartengono a righe di classi non create da me ma, probabilmente, appartenenti a packages di java sdk.

Le classi utilizzate da me per questo programma si chiamano, infatti, AstaSincro.java, AstaPartecipante.java, AstaMain.java.

Nessuno degli errori segnalati fa riferimento a queste classi.

Sergio Pedone
07-10-2003, 07:47
Cosa usi per scrivere codice java ?
Sei sicuro di utilizzare il javac del SDK ?
Edita il tuo file .bash_profile inserendo il PATH per java in prima posizione, poi apri una sessione di un terminale e digita " java -version" e vedi cosa ti restituisce.

Facci sapere come va?

:ciauz:

LeleFT
07-10-2003, 14:44
Beh... se puoi postare un po' di codice, magari ti possiamo aiutare un po' di pių... soprattutto per capire cosa c'č che non va nella riga 60 del file Main.java...



Ciao.

Loading