Como usar o Scala no Intellij Idea (ou: por que é tão difícil conseguir um IDE funcional para Scala)?

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

Pergunta

Recentemente, desisti de tentar usar o Scala no Eclipse (coisas básicas como a conclusão não funciona). Então agora estou tentando Intellij. Não estou indo muito longe.

Consegui editar programas (no destaque e conclusão da sintaxe ... sim!). Mas sou incapaz de executar nem o mais simples "Hello World". Este foi o erro original:

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

Mas isso foi ontem com a idéia 9.0.1. Veja abaixo...

ATUALIZAR

Hoje, desinstalei o Intellij 9.0.1 e instalei 9.0.2 Disponibilidade antecipada, com a versão estável 4/14 do plug-in do Scala.

Então eu configurei um projeto do zero através dos Wizards:

  • Novo projeto do zero
  • JDK é 1.6.u20
  • Aceite o padrão (projeto) em vez de global / módulo
  • Aceite o download do scala 2.8.0beta1 na pasta lib do projeto

Criou uma nova classe:

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

Para meus esforços, agora tenho um erro novinho em folha :)

Aqui está:

Scalac internal error: class java.lang.ClassNotFoundException [java.net.URLClassLoader$1.run(URLClassLoader.java:202), java.security.AccessController.doPrivileged(Native Method), java.net.URLClassLoader.findClass(URLClassLoader.java : 190), java.lang.classLoader.loadclass (classloadler.java:307), Sun.misc.launcher $ appClassLoadeler.loadclass (lançador.java:301), java.lang.classloader.loadclass (classloader.java:248) , java.lang.class.formoname0 (método nativo), java.lang.class.formoname (classe.java:169), org.jetbrains.plugins.scala.compiler.rt.scalacrunner.main (scalacrunner.java:72)

Atualização final

Eu desinstalei 9.0.2 EA e reinstalei 9.0.1, mas desta vez foi com a versão 2.7.3 do Scala em vez do padrão 2.7.6, porque 2.7.3 é o mostrado nas fotos no site Intellij ( Eu acho que as telas provam que eles realmente testaram esta versão!). Agora tudo funciona !!!

Foi útil?

Solução

Encontrei o mesmo erro do Scalac ao tentar executar um projeto Scala no Intellij Idea 9.0.2 e consegui encontrar uma solução por acaso :). Estas são as etapas que tomei na criação do projeto e executando -o.

Eu criei um projeto Scala no Intellij Idea 9.0.2 Final (foi lançado hoje). Instalei o plug-in Scala, reiniciei o IDE e criei um novo projeto Scala (com o nome "testscala") com o Scala-2.8.0.beta1 como biblioteca de projetos. Depois que o projeto é criado e as bibliotecas de Scala baixadas, criei um arquivo test.scala com o seguinte conteúdo:

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

Depois disso, criei uma configuração de lançamento ("Editar configurações"), escolhendo o modelo "Aplicativo". Defino como teste de classe principal e escolhi o nome do projeto ("testscala") no caixa "Uso ClassPath e JDK do módulo". Quando executo a configuração, recebo o mesmo erro que você relatou ("Erro interno do Scalac: classe java.lang.classnotfoundException").

Agora vem a parte esquisita :). Eu clico com o botão direito do mouse no projeto, escolha "Configurações do módulo", dê uma olhada em todas as configurações, mas Eu não mudo nada . Clique em "Aplicar" e "OK", tente executar a configuração novamente e funciona :) .

Eu uso Intellij IDEA 9.0.2 O lançamento final (Build 95-66); Ubuntu 9.10 e JDK 1.6.0_18. Eu também tenho que mencionar que tive um JDK configurado no Intellij, caso contrário, há uma etapa extra para configurá -lo.

ATUALIZAR:

Ao verificar a configuração do módulo, é preciso clicar no Módulo-> scala e Facets-> scala (expanda-o e clique em scala (nome do projeto)) . Ambas as configurações são sobre o local do Scala Compiler e Scala Library. Eu acho que esses valores não estão definidos corretamente quando o projeto é criado, mas é salvo quando o usuário os tocar e salvar as configurações.

Outras dicas

Para responder à sua pergunta, é difícil obter um IDE em funcionamento para Scala por dois motivos: (a) Scala está apenas começando a alcançar um amplo público e (b) devido a (a), não há caso de negócios para passar o tempo em um scala ide.

Além disso, se você tem idade suficiente para liderar sua mente e jovem o suficiente para se lembrar, saberia que, nos primeiros cinco ou mais anos de Java, ficamos presos a ferramentas bem Código quando você disse isso - nenhum erro destacando, sem inteligência automática e a palavra refatoração nem existia. Se você deseja pioneiro, precisa estar preparado para cortar um pouco da estrada, ou pelo menos Bush-Bash.

Sei que não vai te ajudar, mas usei com sucesso a ideia para Scala no Linux, Mac e Windows. Normalmente, tenho o Scala SDK instalado em algum lugar localmente e a idéia de apontar, em vez de usar a opção 'Download'.

Atualmente, estou usando principalmente um Versão EAP da ideia 9 no Mac OS X com Scala 2.8.0.beta1-rc5 e está funcionando bem (exceto que o FSC não parece funcionar com fontes mistas).

Você poderia tentar sua sorte no Fórum de discussão sobre plug -in de ideia scala, embora eu não tenha tido muitas respostas às minhas próprias postagens lá.

Instalar o plug-in é pré-requisito.

A próxima coisa que você deve fazer é definir uma biblioteca (global ou específica do projeto; eu uso global) que segura a biblioteca Scala e Arquivos JAR do compilador (no mínimo, isso é scala-compiler.jar e scala-library.jar). Adicionar frascos de origem e um frasco de documentação ou URLs também é uma boa ideia. Em seguida, faça desta biblioteca uma dependência de quaisquer módulos em seu projeto que incluam código Scala.

Por fim, encontre as facetas Scala nesses módulos e descrete as duas caixas de seleção lá.

Acabei de fazer uma nova instalação e tive exatamente esse mesmo problema. Aconteceu que, porque eu havia criado o arquivo no pacote root, a Idea havia adicionado uma instrução de pacote na parte superior com nomear um pacote. Presumo que isso tenha sido compilado como "objeto de pacote principal" - sintaxe válida em 2.8? De qualquer forma, eu apaguei a linha que dizia o pacote e tudo funcionou bem.

Eu tive o mesmo problema ontem enquanto tentava configurá -lo. A solução é bem simples, basta definir o Scala em algum lugar nas configurações do projeto.

Você está misturando código compilado com duas versões diferentes de Scala.

Eu uso o NetBeans para escrever programas Scala. Até agora, funciona muito bem com meus códigos. Você pode experimentar o plugin aqui: http://wiki.netbeans.org/scala68v1.

Eu estava recebendo esse erro e também tive que clicar com o botão direito do mouse no projeto e "abrir as configurações do módulo". No entanto, foi mais do que apenas acertar a aplicação. Eu tive que garantir que minha raiz de conteúdo estivesse correta para cada projeto. Por alguma razão, houve algumas pastas de origem e teste incorretas.

Meu projeto usa o Maven como a principal ferramenta de construção e a importação do projeto para o Intellij é provavelmente o que criou essas configurações incorretas.

Eu tive um problema semelhante, seguindo isto As instruções da postagem do blog resolveram o problema para mim

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top