何かメモリたいブログ

何かメモリたい

IntelliJ IDEAのScalaプロジェクトで「エラー: メイン・クラスMainが見つからなかったかロードできませんでした」と出た

環境

IntelliJ IDEA 2017.2.5
Build #IC-172.4343.14, built on September 26, 2017
JRE: 1.8.0_152-release-915-b12 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.12.6

エラー内容

IntelliJ IDEA Community版でScalaプラグイン入れてScalaプロジェクト作り、src/mainに新しいディレクトリ作ってそちらにソースコード追加しようとしたが、何故かNewメニューにScala Classが出てこず、無理やりMain.scalaのようなファイルを作りRunしてもエラーが出てしまう…。

src/main/scala-2.12.4/Main.scala

object Main extends App {
  val a = 2
  val b = 3
  println(s"a * b = ${a * b}")
}

実行結果

エラー: メイン・クラスMainが見つからなかったかロードできませんでした

解決方法

新規作成したプロジェクト:idea-study
新規作成したディレクトリ:src/main/scala-2.12.4

FileProject StructureProject SettingsModulesidea-studyを選択
右のツリーの中からscala-2.12.4を選択して、上の方にあるMark as:SourcesをクリックしOKをクリックする

解決後

ディレクトリがソースコード用のディレクトリとして認識され、色もデフォルトのものから青色に変わり、NewにもScala Classが表示されるようになり、Runも通るようになる。

a * b = 6

その他

N予備校大規模Webアプリ/Scala基礎Scala基礎コース/07.IDE を使った Scala プログラミングで詰まったのでメモ。
昔はsrc/mainディレクトリ追加すれば自動でソースコード用のディレクトリとして認識されたのかな。
ちなみにN予備校の方ではsrc/main/scala-2.11となっていたけど、今のバージョンに合わせてsrc/main/scala-2.12.4としている。
別にscala-2.11でも動くと思う(多分)。

それと実行は出来ているけど、別のよく分からないエラーが出ているが、それは今度調べる(多分)。

objc[94437]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x10ee9a4c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10ef844e0). One of the two will be used. Which one is undefined.