2010-04-19 6 views
7

He estado usando Eclipse desde 2.x y IDEs en general desde hace más de 20 años (¡desde Turbo Pascal y Turbo C a finales de los 80!).Atascado en "Hello World" con IntelliJ IDEA 9.0.1 para Scala

(que se supone preámbulo dar a entender, "No soy un idiota" ... pero no suena tan inteligente como lo leí ... LOL: -])

Ahora estoy tratando de usar el depurador Scala en IntelliJ 9.0.1. Me he resignado a un viejo recurso, el "hola mundo" truco para comprobar si el entorno está configurado correctamente:

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

También probé esta versión, por si acaso:

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

Alas , No puedo hacer funcionar incluso este simple ejemplo de Scala. Me gustaría ponerle un punto de interrupción, pero por ahora solo ejecutarlo sería genial. Tengo Java 1.6u20 y el complemento Scala 0.3.473 (enero de 2010). El error siguiente resume mi experiencia:

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

Lo que posiblemente podría estar haciendo mal?

Gracias

+0

bien, lo tiene. .. eliminar el '=' de def main en el primer ejemplo lo arregla! Supongo que la firma de tipo de main() aún importa :) Sin embargo, el segundo ejemplo debería funcionar pero no funciona. Algunas ideas ??? (Mi problema real está resuelto, ¡pero ahora tengo curiosidad!) Gracias –

+0

Recomiendo usar 9.0.2 EA con el último complemento de Scala. Los lanzamientos de EA de JetBrains (especialmente para lanzamientos puntuales) casi siempre son de calidad casi de lanzamiento. Y aunque la gente de Scala plug-in aparece lamentablemente corta en el departamento de notas de la versión, el complemento ha mejorado constantemente en los últimos meses y vale la pena mantenerse al día con lo último. –

+0

En una nota al margen: hay problemas con el rasgo de la aplicación y está en desuso ahora. Use la aplicación en su lugar. – elbowich

Respuesta

5

Desde la captura de pantalla que parece que estaba utilizando:

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

El método principal tiene que estar en un objeto para admitir un método principal.

Capitalizar el nombre del objeto/clase es la convención, pero no se aplica.

+0

Esta fue la respuesta más cercana ...Cambiar al objeto y eliminar el "=" corrige el problema inmediato (ahora puedo pasar el cuadro de diálogo de configuración, aunque el programa no se ejecuta realmente). Es posible que desee editar su respuesta para reflejar eso. Gracias –

+0

Acabo de probar un proyecto de prueba, como el anterior, y tuve problemas muy similares. Creé más de 50 pequeños proyectos scala con el único problema de cambiar los valores predeterminados del compilador y los jars de la biblioteca (desde el complemento) a los de la distribución scala que elijas. Sin embargo, estoy viendo el mismo problema al crear una configuración de ejecución, puedo compilar pero el diálogo de configuración de ejecución no puede encontrar el objeto Hello, la solución no es usar el selector y escribir "Hola" en el campo Clase principal. Todavía hay una advertencia sobre "El método principal no se encuentra en la clase Hola", pero la configuración de ejecución funcionará. Póngase en contacto con soporte, son muy receptivos. –

1

Puede ser un error en el complemento. Si define su objeto como Hola (en mayúscula), entonces funciona, al menos en mi máquina.

+1

Lo intenté, pero no resuelve el problema. –

1

¿Su archivo se llama hello.scala? (No puedo ver que tiene la extensión .scala en su pantalla) - debe ser un archivo .scala lo contrario, el compilador no será capaz de compilar

+1

IntelliJ oculta la extensión. El Explorador de Windows muestra .scala –