2015-04-07 9 views
18

Sto usando IntelliJ 14 con scala 2.11.6 installato utilizzando birra fatta in casa e collegamento simbolico conMultiple scala libraies che causano errori in intellij?

ln -s /usr/local/Cellar/scala/2.11.6/libexec/src /usr/local/Cellar/scala/2.11.6/src 
ln -s /usr/local/Cellar/scala/2.11.6/libexec/lib /usr/local/Cellar/scala/2.11.6/lib 
mkdir -p /usr/local/Cellar/scala/2.11.6/doc/scala-devel-docs 
ln -s /usr/local/Cellar/scala/2.11.6/share/doc/scala /usr/local/Cellar/scala/2.11.6/doc/scala-devel-docs/api 

ho provato a fare funzionare un mondo ciao semplice ma correre in seguente problema.

Error:scalac: Multiple 'scala-library*.jar' files (scala-library.jar, scala-library.jar, scala-library.jar) in Scala compiler classpath in Scala SDK scala-sdk-2.11.6 

Edit:

Così ho controllare il percorso classe del compilatore sulle biblioteche globali ea quanto pare ci sono più scal-library.jar

file:///usr/local/Cellar/scala/2.11.6/idea/lib/scala-library.jar 
file:///usr/local/Cellar/scala/2.11.6/lib/scala-library.jar 
file:///usr/local/Cellar/scala/2.11.6/libexec/lib/scala-library.jar 

Qualcuno sa perché?

+0

Hai un'altra versione di scala installata sul tuo sistema? – curious

+0

Ho fatto 'brew uninstall scala' e' brew install scala with-docs' non so se questo sta causando il problema – Kevin

+0

Prova a disinstallare scala dal tuo sistema, esegui comando scala se mostra comando di scala non trovato che significa che è completamente non installato, quindi installarlo di nuovo. – curious

risposta

0

Si dispone di file JAR da più versioni di scala-library.jar. Per far sparire l'errore dovrai cancellare i duplicati. Per capire quale versione si desidera conservare, è possibile visualizzare il file manifesto all'interno di ogni JAR:

META-INF/MANIFEST.MF 

All'interno del file manifesto si dovrebbe vedere qualcosa di simile:

Manifest-Version: 1.0 
Class-Path: 
Implementation-Title: Scala-Library 
Implementation-Version: 2.11.4 

L'errore sta accadendo perché IntelliJ non riesce a capire quale versione di una determinata classe di Scala usare.

46

Forse avete utilizzato

/usr/local/Cellar/scala/2.11.6/ 

come il percorso per Scala SDK?

Quando si installa scala con homebrew, quel percorso conterrà non solo le librerie scala, ma anche un collegamento simbolico con le librerie pertinenti per intellij. Quindi se si utilizza la directory di installazione di livello superiore, intellij troverà le librerie due volte.

Invece si dovrebbe usare

/usr/local/Cellar/scala/2.11.6/idea/lib 
+0

Questo era esattamente il mio problema e ha un buon numero di upvotes - forse questa dovrebbe essere la risposta accettata? –

+0

Accetto completamente con @GeoffreyWiseman. Risolto anche il mio problema. Grazie. –

+0

È davvero difficile da capire; risolve il problema. Grazie. – noego

1

ho anche incontrato questo errore. La correzione che ho trovato è stata quella di rimuovere la libreria di scala duplicata nel file .iml generato da intellij.

Fondamentalmente ho individuato il file .iml rilevante greggando la versione di scala e ho trovato quella scala di due librerie in quel file. Ho rimosso la versione di scala 2.11 e poi funziona.

+0

Grazie, funziona per me. – tobe

1

Ho avuto lo stesso problema di quello che hai sperimentato e la soluzione, in realtà molto semplice, stava effettivamente cancellando la cartella .idea dal progetto, il problema è che la configurazione all'interno di questa cartella (contenente le impostazioni ad esempio per il test, VCS, le corse, ecc.) viene corrotto con le doppie voci (probabilmente perché aggiorni la tua versione di Scala), una volta fatto questo e riaprendo il progetto in Intellij l'IDEA genererà una nuova configurazione per te.

Problemi correlati