web-dev-qa-db-ja.com

IntelliJでScalaを使用する方法IDEA(または、ScalaでIDE_を動作させるのがなぜ難しいのですか?)

最近、EclipseでScalaを使用しようとしてあきらめました(完了などの基本的なものは機能しません)。だから今、私はIntelliJを試しています。私はあまり遠くに行けません。

私はプログラムを編集することができました(構文の強調表示と補完の範囲内で...いや!)。しかし、私は最も単純な「Hello World」でさえ実行できません。これは元のエラーでした:

 Scala署名Predefのバージョンが間違っています
期待される5.0 
 found:4.1 in .... scala-library.jar 

しかし、それはIDEA 9.0.1で昨日でした。下記参照...

[〜#〜] update [〜#〜]

今日、IntelliJ 9.0.1をアンインストールし、4.14安定バージョンのScalaプラグインとともに9.0.2 Early Availabilityをインストールしました。

次に、ウィザードを使用してゼロからプロジェクトをセットアップします。

  • 最初から新しいプロジェクト
  • JDKは1.6.u20です
  • グローバル/モジュールの代わりにデフォルト(プロジェクト)を受け入れます
  • Scala 2.8.0beta1のプロジェクトのlibフォルダーへのダウンロードを受け入れます

新しいクラスを作成しました:

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

私の努力のために、今では真新しいエラーがあります:)

ここにあります:

Scalac内部エラー:クラス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(ClassLoader.Java:307)、Sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.Java:301)、Java.lang.ClassLoader.loadClass(ClassLoader.Java:248) 、Java.lang.Class.forName0(ネイティブメソッド)、Java.lang.Class.forName(Class.Java:169)、org.jetbrains.plugins.scala.compiler.rt.ScalacRunner.main(ScalacRunner.Java:72) ]

最終更新

9.0.2 EAをアンインストールして9.0.1を再インストールしましたが、今回はデフォルトの2.7.6ではなく2.7.3バージョンのScalaを使用しました。これは、2.7.3が画面に表示されているためです。 IntelliJ Webサイトでのショット(スクリーンショットは、彼らが実際にこのバージョンをテストしたことを証明していると思います!)今、すべてが動作します!!!

48
Alex R

Intellij Idea 9.0.2でScalaプロジェクトを実行しようとすると、同じスカラクエラーが発生し、偶然に解決策を見つけることができました:)。これらは、プロジェクトを作成して実行する際に行った手順です。

Intellij Idea 9.0.2 finalでScalaプロジェクトを作成しました(本日リリースされました)。 Scalaプラグインをインストールし、IDEを再起動して、プロジェクトライブラリとしてscala-2.8.0.Beta1を使用して新しいScalaプロジェクト(「TestScala」という名前)を作成しました。プロジェクトが作成され、scalaライブラリがダウンロードされたら、次の内容のTest.scalaファイルを作成しました。

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

その後、起動構成(「構成の編集」)を作成し、「アプリケーション」テンプレートを選択しました。メインクラステストとして設定し、[クラスパスとモジュールのJDKを使用]コンボボックスでプロジェクト名( "TestScala")を選択します。構成を実行すると、報告したのと同じエラー(「Scalac内部エラー:クラスJava.lang.ClassNotFoundException」)が発生します。

今、気紛れな部分が来ます:)。プロジェクトを右クリックし、[モジュール設定]を選択し、すべての設定を確認しますが、何も変更しませんです。 「適用」と「OK」をクリックし、構成を再度実行してみてください動作します :)。

私はIntellij Idea 9.0.2の最終リリース(ビルド95-66)を使用しています。 Ubuntu 9.10およびJDK 1.6.0_18。また、IntellijでJDKが構成されていることにも言及する必要があります。それ以外の場合は、JDKを構成するための追加の手順があります。

更新:

モジュールの設定を確認するときは、Module-> ScalaおよびFacets-> Scala(展開してScala(ProjectName))をクリックする必要があります。これらの設定は両方とも、scalaコンパイラとscalaライブラリの場所に関するものです。プロジェクトの作成時にはこれらの値は適切に設定されていませんが、ユーザーがそれらに触れて設定を保存すると保存されます。

20
Andrei Oprisan

あなたの質問に答えるには、次の2つの理由でIDEのScalaを機能させるのは困難です:(a)Scalaはまだ幅広い視聴者にリーチしており(b)(a)により、Scala IDEに時間を費やすビジネスケースはありません。

また、あなたが心を振り返るのに十分な年齢であり、まだ覚えるのに十分な若さがある場合、Javaの最初の5年以上の間、JBuilderのような大丈夫なツールで立ち往生していることがわかりますあなたがそう言ったときのコード-エラーの強調表示、自動インポート、Wordリファクタリングは存在しませんでした。パイオニアになりたければ、自分で道を切り開く準備をする必要があります。少なくともブッシュバッシュは必要です。

役に立たないことはわかっていますが、Linux、Mac、WindowsでIDEAにScalaを使用することに成功しました。通常、Scala SDKをローカルのどこかにインストールし、 'download'オプションを使用するのではなく、IDEAを指定します。

現在、私はほとんど EAPバージョンのIDEA 9 をMac OS XでScala 2.8.0.Beta1-RC5で使用しており、うまく機能しています(ただし、そのfscは混合ソースでは機能しないようです)。

IDEA Scala Plugin Discussion Forum であなたの運を試してみることもできますが、私自身の投稿に対する反応はあまりありませんでした。

10
Graham Lea

プラグインのインストールは前提条件です。

次にすべきことは、Scala library andコンパイラJARファイル(少なくとも、 、それはscala-compiler.jarおよびscala-library.jar)。ソースJARとドキュメントJARまたはURLを追加することもお勧めします。次に、このライブラリを、プロジェクト内のScalaコードを含むモジュールの依存関係にします。

最後に、それらのモジュールでScalaファセットを見つけて、両方のチェックボックスを選択解除します。

6
Randall Schulz

新しくインストールしたばかりで、まったく同じ問題を自分で抱えていました。ルートパッケージにファイルを作成したので、IDEAがパッケージの名前を付けて上部にパッケージステートメントを追加したことがわかりました。 Main "-2.8で有効な構文ですか?とにかく、パッケージと言った行を削除しましたが、すべて正常に機能しました。

2
Graham Lea

昨日、セットアップしようとしても同じ問題が発生しました。解決策は非常に簡単です。プロジェクト設定のどこかでscalaを設定するだけです。

1
Theq

Netbeansを使用してscalaプログラムを作成します。これまでのところ、私のコードで非常にうまく機能しています。ここでプラグインを試すことができます。 http://wiki.netbeans.org/Scala68v1

0
Bruce Li

このエラーが発生し、プロジェクトを右クリックして「モジュール設定を開く」必要がありました。しかし、それは単に適用を押すだけではありませんでした。各プロジェクトでコンテンツルートが正しいことを確認する必要がありました。何らかの理由で、誤ったソースフォルダーとテストフォルダーがありました。

私のプロジェクトはメインビルドツールとしてmavenを使用しており、プロジェクトをIntellijにインポートすることでこれらの誤った設定が作成された可能性があります。

0
OleTraveler

2つの異なるScala=バージョンでコンパイルされたコードを混合しています。

0

this ブログ投稿の手順に従って同様の問題が発生し、問題は解決しました

0
LiorH