Pregunta

He instalado Eclipse 3.5.2 y Scala de hoy plugin desde / actualización de corriente (que es Scala 2.8 final.) Puedo compilar y ejecutar proyectos Scala consistentes en un único objeto singleton que implementa principal ().

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

He tratado de buscar la solución y descubrí:

Eclipse está correctamente en busca de la clase $ principal, no el principal clase
* Configuraciones de depuración bajo, mi clase principal se identifica correctamente como mypackage.Main
* Mi plug-in es hasta la fecha y se recomienda para mi versión de Eclipse
* Limpieza, etc. reiniciar no ayuda.

El mismo proyecto se compilará con scalac.

Gracias por cualquier idea sobre cómo resolver esto.

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

Este fragmento produce un error. No es el código más idiomática, pero me escribió de esa manera para poner a prueba mi entorno. Lo probé como un solo archivo y como archivos separados. No 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 la definición de jerarquía dentro de HelloFrame Hola, funciona. Este fragmento de código funciona 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
    }
}
¿Fue útil?

Solución

Para mí, el problema era que había un error de generación (ver pestaña de problemas) que era la prevención de la compilación; ¡Uy! La razón por la que se ve el error es que los beneficios de ejecución de macro a pesar del paso de compilación fallado, y los intentos para ejecutar archivos de clase que espera estar allí; no existen porque hubo un error de generación prevención de compilación, por lo que dice que no puede encontrar principal (no compilado).

El problema desaparece cuando la acumulación se puede completar con éxito, es decir, los errores son fijos.

Creo que, en teoría razones, puede ser más complicado de su construcción no está completando con éxito que no figuran en los problemas.

Otros consejos

Una posibilidad es que usted está tratando de poner en marcha utilizando ctrl-F11, pero de una clase diferente.

El plug-in de Eclipse Scala no obedece a los valores por defecto para el lanzamiento de Java. En Preferencias-> Ejecutar / Depuración> Lanzamiento, hay algunas opciones de lanzamiento de funcionamiento-> Siempre iniciar la aplicación seleccionada anteriormente, etc. Este trabajo no lo hace actualmente en el Scala Eclipse plug-in. Para iniciar una especifica principal, es necesario poner en marcha desde el editor de la clase.

Se ha producido un error planteado por esto. http: //scala-ide.assembla.com/spaces/scala-ide/tickets/1000023-scala-launch--does-not-follow-jdt-behaviour

EDIT:. Esto es ahora (en su mayoría) fijado

Para mí fue Eclipse problema específico. Noté que .class archivo no se construyó en absoluto. Así directorio bin no tiene clases compiladas. Cuando he realizado manualmente * * .scala archivo usando .sbt y los copié directorio bin que estaba funcionando como se esperaba. Probé diferentes consejos y trucos y no fue hasta que trabajé reinstalado Scala plug-in de Eclipse .

me gustaría resolver un problema similar de executig "Proyecto-> Limpiar .." con la próxima construcción de forma automática.

Yo tenía el mismo mensaje de error con una aplicación Java hecho por mí mismo.

El problema era que he eliminado (aunque dentro de Eclipse) un frasco que pertenecía a la ruta de compilación de Java , sin eliminarlo de la ruta de acceso de construcción Java (la ventana Propiedades del proyecto). Cuando lo hice la clase podría compilar y ejecutar de nuevo.

Asegúrese de que existen los archivos .class, por lo general por debajo del directorio de bin.

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

No puede ser el caso de los proyectos, que contiene errores, sumado a la trayectoria de la estructura de la aplicación que impide la realización de una compilación exitosa. Asegúrese de retirar cualquier proyecto de la trayectoria de la estructura antes de ejecutar la aplicación.

La eliminación de estos proyectos resolvió el problema para mí.

¿Tiene una configuración adecuada herramienta de construcción? Al igual que SBT has instalado?

Puede comprobar su versión por $ SBT --version

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

Es posible que tenga que reiniciar el Eclipse después de la instalación.

Sólo tienes que copiar el código de archivo XXX.scala. Eliminar el paquete y crear una nueva clase Scala. Pegar el código de XXX.scala. (Si está utilizando Maven, hacer una construcción limpia y maven.) Ejecutar la configuración de nuevo. Esto funciona para mí.

Me han enfrentado a este problema. acabo de borrar el nombre del paquete, clase Scala creado, escrito el mismo código, Conjunto de construcción de "construir automáticamente". Por último, funciona perfectamente bien.

Comprobar scala-ide.log

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

AppData \ Local \ Temp \ sbt_10d322fb \ xsbt \ ClassName.scala: 16: Error: No se ha encontrado: valor enteringPhase enteringPhase (currentRun.flattenPhase.next) {s separador fullName}

Si está utilizando IntelliJ, directorio raíz marca como fuente

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top