Come usare Scala in IntelliJ IDEA (o: perché è così difficile ottenere un IDE che lavora per Scala)?

StackOverflow https://stackoverflow.com/questions/2668153

Domanda

Di recente ho rinunciato a utilizzare Scala di Eclipse (cose di base come il completamento non funziona). Così ora sto cercando IntelliJ. Non ricevo molto lontano.

Sono stato in grado di modificare i programmi (all'interno di evidenziazione della sintassi e il completamento ... yay!). Ma io sono in grado di eseguire anche il più semplice "Ciao Mondo". Questo è stato l'errore originale:

Scala signature Predef has wrong version
Expected 5.0
found: 4.1 in .... scala-library.jar

Ma questo era ieri con IDEA 9.0.1. Vedi sotto ...

Aggiorna

Oggi ho disinstallato IntelliJ 9.0.1, 9.0.2 e installato precoce disponibilità, con la versione 4/14 stabile del plug-in Scala.

configurazione Poi ho un progetto da zero attraverso le procedure guidate:

  • nuovo progetto da zero
  • JDK è 1.6.u20
  • accettare il default (progetto) invece di / modulo
  • globale
  • accettare il download di Scala 2.8.0beta1 nella cartella lib
  • del progetto

Creato una nuova classe:

object hello {
  def main(args: Array[String]) {
    println("hello: " + args);
  }
}

Per quanto mi sforzi, ora ho un errore di nuovo di zecca:)

Qui è:

scalac errore interno: classe java.lang.ClassNotFoundException [java.net.URLClassLoader $ 1.run (URLClassLoader.java:202), java.security.AccessController.doPrivileged (metodo natale), java.net.URLClassLoader.findClass ( URLClassLoader.java:190), java.lang.ClassLoader.loadClass (ClassLoader.java:307), sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:301), java.lang.ClassLoader.loadClass (ClassLoader.java : 248), java.lang.Class.forName0 (metodo natale), java.lang.Class.forName (Class.java:169), org.jetbrains.plugins.scala.compiler.rt.ScalacRunner.main (ScalacRunner.java : 72)]

AGGIORNAMENTO FINALE

Ho disinstallato e reinstallato 9.0.2 EA 9.0.1, ma questa volta sono andato con la versione 2.7.3 di Scala, piuttosto che il default 2.7.6, 2.7.3, perché è quella mostrata nelle screen-shots al sito web IntelliJ (credo che i screen-shots dimostrano che in realtà testato questa versione!). Ora tutto funziona !!!

È stato utile?

Soluzione

ho incontrato lo stesso errore scalac quando si tenta di eseguire un progetto Scala in IntelliJ IDEA 9.0.2 e sono riuscito a trovare una soluzione per caso :). Questi sono i passi che ho fatto nella creazione del progetto ed eseguirlo.

Ho creato un progetto Scala in IntelliJ IDEA 9.0.2 finale (è stato rilasciato oggi). Ho installato il plugin Scala, riavviato l'IDE e ha creato un nuovo progetto Scala (con il nome "TestScala") con scala-2.8.0.Beta1 come biblioteca del progetto. Una volta che il progetto viene creato e le librerie Scala scaricato, ho creato un file Test.scala con il seguente contenuto:

object Test  {
 def main(args:Array[String]){
   println("hello")
 }
}

Dopo di che, ho creato una configurazione di lancio ( "Modifica configurazioni"), la scelta del modello di "Applicazione". Ho impostato come classe principale di prova e scegliere il nome del progetto ( "TestScala") nella "Usa classpath e JDK di modulo" casella combinata. Quando eseguo la configurazione ottengo lo stesso errore, come si dice ( "scalac errore interno: class java.lang.ClassNotFoundException").

Ora arriva la parte Freaky :). Ho tasto destro del mouse sul progetto, scegliere "Impostazioni modulo", avere uno sguardo su tutte le impostazioni, ma non cambio nulla . Fare clic su "Applica" e "ok", provare a eseguire di nuovo la configurazione e la funziona :).

Io uso IntelliJ IDEA 9.0.2 la versione finale (accumulo 95-66); Ubuntu 9.10 e JDK 1.6.0_18. Devo anche dire che ho avuto un JDK configurato in IntelliJ, altrimenti c'è un passo in più per configurarlo.

UPDATE:

Quando si controlla l'impostazione del modulo, si ha bisogno di fare clic sul su moduli> Scala e Facets-> Scala (espanderlo e fare clic su Scala (ProjectName)) . Entrambe queste impostazioni sono circa il compilatore Scala e scala posizione della libreria. Direi questi valori non sono impostati correttamente quando viene creato il progetto, ma vengono salvati una volta che l'utente li tocca e salva le impostazioni.

Altri suggerimenti

Per rispondere alla tua domanda, è difficile ottenere un IDE che lavora per Scala per due motivi: (A) Scala è solo all'inizio per raggiungere un vasto pubblico e (B) a causa di (a), non c'è nessun caso di business per passare il tempo su uno Scala IDE.

Inoltre, se siete abbastanza vecchio per lanciare la schiena mente e giovane abbastanza per ricordo ancora, si sa che per i primi cinque o più anni di Java, siamo rimasti bloccati con strumenti ok-ish come JBuilder che ha fatto poco più di compilare il codice quando hai detto tu - nessun errore mettendo in evidenza, senza auto-importazione e la parola refactoring non esisteva nemmeno. Se si vuole pioniere, è necessario essere pronti a tagliare un po 'della strada da soli, o almeno bush-bash.

So che non vi aiuterà, ma ho usato con successo IDEA per Scala su Linux, Mac e Windows. Io di solito ho la Scala SDK installato da qualche parte a livello locale e punto idea che piuttosto che usare l'opzione 'download'.

Al momento, sto per lo più si utilizza una versione EAP di IDEA 9 su Mac OS X con Scala 2.8.0.Beta1-RC5 e sta funzionando bene (tranne che FSC non sembra lavorato con fonti miste).

Si potrebbe tentare la fortuna oltre al IDEA Scala Plugin Forum di discussione , anche se non ho avuto una grande sacco di risposte ai miei post lì.

L'installazione del plug-in è un prerequisito.

La prossima cosa da fare è definire una biblioteca (progetto-specifici globale o, io uso globale) che contiene la libreria Scala e file compilatore JAR (come minimo, di che scala-compiler.jar e scala-library.jar) . L'aggiunta di JAR di origine e un barattolo di documentazione o URL è una buona idea, anche. Poi fare questa libreria una dipendenza di tutti i moduli nel progetto che includono codice Scala.

Infine, trovare le sfaccettature Scala di quei moduli e de-selezionare entrambe le caselle di controllo lì.

Ho appena fatto installare un fresco e aveva esattamente lo stesso problema io stesso. Si è scoperto che, in quanto avevo creato il file nel package principale, IDEA aveva aggiunto una dichiarazione package in alto con la denominazione di un pacchetto. Presumo che questo poi si compilato come "oggetto del pacchetto principale" - sintassi valida in 2.8? Ad ogni modo, ho cancellato la linea che ha detto pacchetto e tutto bene funzionato.

Ho avuto lo stesso problema di ieri durante il tentativo di configurarlo. Soluzione è abbastanza semplice, basta necessario impostare qualche Scala di impostazioni del progetto.

si stia mescolando codice compilato con due versioni differenti Scala.

Io uso Netbeans ai programmi Scala di scrittura. Finora funziona molto bene con i miei codici. Si può provare il plugin qui:. http://wiki.netbeans.org/Scala68v1

mi è stato sempre questo errore e ha dovuto anche fare clic destro sul progetto e "Impostazioni modulo aperto". Tuttavia, è stato più di un semplice colpire applicare. Ho dovuto fare in modo che la mia radice contenuto è stato corretto per ogni progetto. Per qualche ragione, ci sono stati alcuni cartelle di origine e di test errati.

I miei usi progetto Maven come strumento di costruzione principale e l'importazione del progetto in IntelliJ è probabilmente ciò che ha creato queste impostazioni non corrette.

Ho avuto problemi simili, seguendo questo blog istruzioni post risolto il problema per me

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top