2010-04-19 4 views
7

J'utilise Eclipse depuis 2.x et IDE en général depuis plus de 20 ans (depuis Turbo Pascal et Turbo C à la fin des années 80!).Coincé à "Hello World" avec IntelliJ IDEA 9.0.1 pour Scala

(ce préambule est censé impliquer, « Je ne suis pas un idiot » ... mais ne semble pas si intelligent que je l'ai lu ... LOL: -])

Maintenant, je suis essayer d'utiliser le débogueur Scala dans IntelliJ 9.0.1. Je me suis résigné à une vieille attente, le truc « Bonjour tout le monde » pour vérifier si l'environnement est configuré correctement:

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

J'ai aussi essayé cette version, juste au cas où:

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

Hélas! , Je suis incapable d'obtenir même cet exemple Scala simple à exécuter. J'aimerais y mettre un point d'arrêt, mais pour l'instant, il serait bien de le faire tourner. J'ai Java 1.6u20 et le plug-in Scala 0.3.473 (janvier 2010). L'erreur ci-dessous résume mon expérience:

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

Qu'est-ce que je pourrais peut-être faire mal?

Merci

+0

Bon, a obtenu. .. supprimer le '=' de def main sur le premier exemple le fixe! Je suppose que la signature de type de main() importe toujours :) Cependant, le second exemple devrait fonctionner mais ne fonctionne pas. Des idées ??? (mon problème actuel est résolu, mais maintenant je suis curieux!) Merci –

+0

Je recommande d'utiliser 9.0.2 EA avec le dernier plug-in Scala. Les versions EA de JetBrains (en particulier pour les versions ponctuelles) sont presque toujours de qualité proche de la version. Et tandis que les gens du plug-in Scala sont terriblement à court dans le département des notes de mise à jour, le plug-in s'est régulièrement amélioré au cours des derniers mois et il est intéressant de se tenir au courant des dernières nouveautés. –

+0

Sur une note de côté: il y a des problèmes avec le trait Application et il est obsolète maintenant. Utilisez App à la place. – elbowich

Répondre

5

À partir de votre écran, il vous ressemble employiez:

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

La méthode principale doit être sur un objet pour prendre en charge une méthode principale. La capitalisation du nom de l'objet/de la classe est la convention, mais elle n'est pas appliquée.

+0

C'était la réponse la plus proche ...Passer à l'objet et supprimer le "=" résout le problème immédiat (je peux maintenant passer ce dialogue de configuration, bien que le programme ne fonctionne pas réellement). Vous voudrez peut-être modifier votre réponse pour refléter cela. Merci –

+0

Je viens d'essayer un projet de test, comme ci-dessus, et avait des problèmes très similaires. J'ai créé plus de 50 petits projets de scala avec le seul problème étant de changer les valeurs par défaut du compilateur et des bibliothèques (du plugin) à celles de la distribution de scala de votre choix. Cependant, je vois le même problème en créant une config run, je peux compiler mais la boîte de dialogue run config ne trouve pas l'objet Hello, la solution n'est pas d'utiliser le sélecteur et de taper "Hello" dans le champ Main class. Il y a encore un avertissement à propos de "Méthode principale introuvable dans la classe Hello" mais la configuration de run fonctionnera. Contactez le support, ils sont très réactifs. –

1

Cela peut être un bug dans le plugin. Si vous définissez votre objet comme Hello (en majuscules), cela fonctionne, au moins sur ma machine.

+1

J'ai essayé, mais cela ne résout pas le problème. –

1

Votre fichier s'appelle-t-il hello.scala? (Je ne vois pas qu'il a l'extension .scala dans votre capture d'écran) - il doit être un fichier .scala sinon le compilateur ne sera pas en mesure de compiler

+1

IntelliJ cache l'extension. Windows Explorer montre .scala –