intellij eclipse scala eclipse-plugin scala-ide

eclipse - intellij - scala download



El proyecto Scala no se compilará en Eclipse; "No pudo encontrar la clase principal." (12)

He instalado Eclipse 3.5.2 y el complemento de Scala de hoy desde / update-current (es decir, Scala 2.8 final). Puedo compilar y ejecutar proyectos de Scala que consisten en un único objeto singleton que implementa main ().

Pero, si un proyecto contiene más clases, recibo el error "No se pudo encontrar la clase principal".

He intentado buscar la solución y descubrí:

Eclipse está buscando correctamente la clase Main $, no la clase Main
* en Configuraciones de depuración, mi clase principal se identifica correctamente como mypackage.Main
* mi complemento está actualizado y recomendado para mi versión de Eclipse
* La limpieza, reinicio, etc. no ayuda.

El mismo proyecto se compilará con scalac.

Gracias por cualquier idea sobre cómo resolver esto.

EDIT: MatthieuF sugirió que debería publicar el código.

Este fragmento de código produce un error. No es el código más idiomático, pero lo escribí de esa manera para probar mi entorno. Lo intenté como un solo archivo y como archivos separados. Funciona con scalac.

import swing._ class HelloFrame extends Frame { title = "First program" contents = new Label("Hello, world!") } object Hello { val frame = new HelloFrame def main(args : Array[String]) : Unit = { frame.visible = true } }

PERO, si anido la definición de HelloFrame dentro de Hello, funciona. Este fragmento se ejecuta perfectamente:

import swing._ object Hello { class HelloFrame extends Frame { title = "First program" contents = new Label("Hello, world!") } val frame = new HelloFrame def main(args : Array[String]) : Unit = { frame.visible = true } }


¿Tiene una configuración adecuada de herramientas de construcción? Como sbt lo has instalado?

Puedes comprobar su versión por $ sbt --version

Si no está configurado, puede descargar desde aquí http://www.scala-sbt.org/download.html

Es posible que tenga que reiniciar su eclipse después de la instalación.


Asegúrese de que existan los archivos .class , generalmente debajo del directorio bin .

En particular, si tiene errores en archivos no relacionados en el mismo proyecto, la compilación puede fallar y no se producirán archivos .class .


Compruebe scala-ide.log

Para mí el problema era que había errores en:

AppData / Local / Temp / sbt_10d322fb / xsbt / ClassName.scala: 16: error: no encontrado: valor de entradaEnfase Fase (currentRun.flattenPhase.next) {separador de nombre completo}


Me he enfrentado a este problema. Acabo de eliminar el nombre del paquete, he creado la clase scala, he escrito el mismo código, Configurar compilación como "Generar automáticamente". Por último, funciona perfectamente bien.


Para mí, el problema era que había un error de compilación (ver pestaña Problemas) que impedía la compilación; oops La razón por la que ve el error es que la macro de ejecución continúa a pesar del paso de compilación fallido e intenta ejecutar los archivos de clase que espera que estén allí; no existen porque hubo un error de compilación que impidió la compilación, por lo que dice que no puede encontrar Main (no compilado).

El problema desaparece cuando la compilación se puede completar con éxito, es decir, los errores se corrigen.

Supongo que, en teoría, puede haber razones más complicadas para que su compilación no se complete con éxito que no se enumeran en Problemas.


Para mi era problema específico de Eclipse. Noté que el archivo .class no fue construido en absoluto. Así que el directorio bin no tiene clases compiladas. Cuando compilé manualmente el archivo * .scala usando * .sbt y lo copié en el directorio bin funcionó como se esperaba. Probé diferentes trucos y consejos y no funcionó hasta que reinstalé el complemento de Scala en Eclipse .


Puede darse el caso de proyectos, que contienen errores, agregados a la ruta de compilación de la aplicación que impide la finalización de una compilación exitosa. Asegúrese de eliminar cualquier proyecto de este tipo de la ruta de compilación antes de ejecutar la aplicación.

Eliminar estos proyectos me solucionó el problema.


Si está utilizando Intellij, marque el directorio como raíz de origen


Simplemente copia tu código de archivo XXX.scala. Retire el paquete y cree una nueva clase Scala. Pega tu código XXX.scala. (Si está utilizando maven, haga un maven clean y build). Ejecute la configuración nuevamente. Esto funciona para mi


Solucioné un problema similar ejecutando "Proyecto-> Limpiar .." con la siguiente creación automática.


Tuve el mismo mensaje de error con una aplicación Java hecha por mí mismo.

El problema fue que eliminé (aunque dentro de Eclipse) un jar que pertenecía a la ruta de compilación de Java , sin borrarlo de la ruta de compilación de Java (ventana Propiedades del proyecto). Cuando lo hice, la clase pudo compilar y correr de nuevo.


Una posibilidad es que esté intentando iniciar con ctrl-F11, pero de una clase diferente.

El complemento de Scala Eclipse no obedece a los valores predeterminados para el lanzamiento de Java. En Preferencias-> Ejecutar / Depurar-> Iniciar, hay algunas opciones Iniciar Operación-> Siempre Iniciar la aplicación previamente seleccionada, etc. Esto actualmente no funciona en el complemento de eclipse de Scala. Para iniciar una página principal especificada, debe iniciarla desde el editor de la clase.

Ha habido un error planteado para esto. http://scala-ide.assembla.com/spaces/scala-ide/tickets/1000023-scala-launch--does-not-follow-jdt-behaviour

EDITAR: Esto está ahora (en su mayoría) arreglado.