簡體   English   中英

在 IntelliJ Idea 中編譯和運行 Scala 項目的問題

[英]Problems compiling and running Scala projects in IntelliJ Idea

我已經使用 Scala 插件安裝了最新的 IntelliJ Idea 版本。 我已經使用 IDE 創建了一個 SBT Scala 項目。 不幸的是,即使是最簡單的“Hello World”示例,我也無法編譯或運行。

object Main {
    def main(args: Array[String]): Unit ={
        val x: Int = 5
        println("Hello Scala!")
        println(x)
    }
}

如果我嘗試運行它,它會說“錯誤:找不到主類 Main”。 重建項目沒有幫助。

但是,如果我運行“sbt”終端程序並執行“run”,一切運行正常。 更重要的是,它編譯了必要的類文件,以便 IntelliJ Idea 能夠在這一步之后運行它。 但是,每當我更改代碼中的某些內容並嘗試從 Idea 重建它時,它都會像以前一樣失敗。

編輯:在 Eclipse 中一切正常。

更新

如果我嘗試從 sbt shell 執行“編譯”,然后使用 IDE 執行“運行”,它將起作用。 但是,它不會在執行“構建”或“重建項目”時執行此操作。 有時,但不幸的是並不總是 sp 能夠重現它,它會給我一個異常“無法初始化類 sbt.internal.io.Milli$”

更新二:

我進一步簡化了任務。 現在我有類似以下屏幕截圖的內容:

IntelliJ IDEA 截圖

更新第三:

我的部署中有兩個錯誤。 其中之一是,正如之前指出的那樣,存在一些包定義問題。 所有的源代碼都應該依賴於 src/main/scala,但這還不夠。 為了使用 SBT 結構進行構建,我必須轉到文件 -> 設置 -> 構建、執行、部署 -> 構建工具 -> sbt 並選中“使用自動導入”和“使用 sbt shell 進行構建和導入” ”。

之后,一切運行正常。 最后!

非常感謝大家提供有用的意見!

在您的屏幕截圖中, Runner位於錯誤的包中。 它寫成package main.scala 如果Runner.scalasrc/main/scala/way/to/my/package包聲明應該是package way.to.my.package (如果它只是在src/main/scala ,則不應有 line package ... )。

此外,如果仍然有必要,您可以嘗試(從應該首先嘗試什么到應該最后嘗試什么,如果之前嘗試過的事情沒有幫助)

  • sbt clean
  • 將項目重新導入 IntelliJ IDEA
  • File -> Invalidate Caches / Restart ...
  • 刪除項目文件夾的.idea子文件夾

您是否嘗試過“object Main”附近的綠色箭頭? 這應該啟動程序。

IntelliJ Idea 的截圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM