2010-04-19 11 views
7

Utilizzo Eclipse da 2.xe IDE in generale da oltre 20 anni (da Turbo Pascal e Turbo C alla fine degli anni '80!).Bloccato a "Hello World" con IntelliJ IDEA 9.0.1 per Scala

(che si suppone preambolo implicare, "Io non sono un idiota" ... ma non sembra così intelligente come l'ho letto ... LOL: -])

Ora sono cercando di usare il debugger Scala in IntelliJ 9.0.1. Mi sono rassegnato a un vecchio standby, il trucco "ciao mondo" per verificare se l'ambiente è configurato correttamente:

 
class hello { 
    def main(a: Array[String]) = println("got args: " + a) 
} 

Ho anche provato questa versione, nel caso in cui:

 
object hello extends Application { 
    println("hi") 
} 

Alas , Non riesco a ottenere nemmeno questo semplice esempio di Scala da eseguire. Mi piacerebbe alla fine inserirvi un breakpoint, ma per ora solo correre sarebbe fantastico. Ho Java 1.6u20 e il plug-in Scala 0.3.473 (gennaio 2010). L'errore di seguito riassume la mia esperienza:

alt text http://img535.imageshack.us/img535/842/ij9.jpg

Quello che forse potrei fare male?

Grazie

+0

Va bene, ce l'ha. .. rimuovendo il '=' da def principale sul primo esempio lo risolve! Suppongo che il tipo di firma di main() conti ancora :) Tuttavia, il secondo esempio dovrebbe funzionare ma non lo fa. Qualche idea ??? (il mio problema reale è risolto, ma ora sono curioso!) Grazie –

+0

Ti consiglio di utilizzare 9.0.2 EA con il più recente plug-in Scala. Le versioni EA di JetBrains (in particolare per i rilasci di punti) sono quasi sempre di qualità quasi a rilascio. E mentre il plug-in di Scala si avvicina dolorosamente al reparto delle note di rilascio, il plug-in è migliorato costantemente negli ultimi mesi e il passo con l'ultimo è utile. –

+0

Nota a margine: ci sono problemi con il tratto Application ed è ora deprecato. Usa invece l'app. – elbowich

risposta

5

Dal tuo screenshot sembra che si stesse utilizzando:

class hello { 
    def main(a: Array[String]) = println("got args: " + a) 
} 

Il metodo principale deve essere su un oggetto per supportare un metodo principale.

La capitalizzazione dell'oggetto/nome della classe è la convenzione ma non viene applicata.

+0

Questa è stata la risposta più vicina ...La modifica dell'oggetto e la rimozione di "=" risolve il problema immediato (ora riesco a superare la finestra di configurazione, anche se il programma non riesce a funzionare effettivamente). Potresti voler modificare la tua risposta per riflettere questo. Grazie –

+0

Ho appena provato un progetto di test, come sopra, e ho avuto problemi molto simili. Ho creato più di 50 progetti di scala con l'unico problema di cambiare i valori predefiniti del compilatore e della libreria (dal plugin) a quelli della scala distro di scelta. Tuttavia sto vedendo lo stesso problema nella creazione di una configurazione di esecuzione, posso compilare ma la finestra di configurazione di esecuzione non riesce a trovare l'oggetto Hello, la soluzione non è quella di usare il selettore e digitare "Hello" nel campo della classe Main. C'è ancora un avvertimento su "Metodo principale non trovato nella classe Hello", ma la configurazione di esecuzione funzionerà. Contatta l'assistenza, sono molto reattivi. –

1

Potrebbe essere un bug nel plugin. Se definisci l'oggetto come Ciao (in maiuscolo), allora funziona, almeno sulla mia macchina.

+1

L'ho provato, ma non risolve il problema. –

1

Il file si chiama hello.scala? (Non riesco a vedere che ha la .scala estensione nel vostro screenshot) - deve essere un file .scala altrimenti il ​​compilatore non sarà in grado di compilarlo

+1

IntelliJ nasconde l'estensione. Windows Explorer mostra .scala –