2009-10-01 27 views
16

有沒有辦法通過scala插件從Eclipse執行scala 腳本使用Scala作爲Eclipse的腳本語言

scala腳本是一個逐行執行的scala文件,不會強制您編寫主要方法。請參閱scala's man page中的Description部分。

+0

答案都是錯過了目標。如果你正在編寫一個腳本,作爲一個腳本執行,那麼應該有一種方法來執行它。這與REPL上的嘗試無關,或者與生成程序而不是腳本的方式不同。 – 2009-10-01 13:17:56

+1

當然。沒有任何答案與這個問題有關。我想知道爲什麼他們中的一個被高舉。 – 2009-10-01 15:35:21

回答

18

我知道這個問題在這一點上是古老的,但在有人正在尋找答案的機會(就像我一樣),我們走。這些信息基於使用Scala 2.8.2的Scala Eclipse Plug-in的beta 2.0.0.0版本。我發現了兩種可能的選項:

第一種選擇是使用「Send Selection to Scala Interpreter」命令,該命令默認綁定到「Ctr + Shift + X」。這將在任何Scala編輯器中選擇當前的文本並將其發送給解釋器執行。它會在與Eclipse控制檯相同的選項卡分組中創建一個新窗口。在執行結束時出現錯誤「:3:錯誤:值工具不是程序包scala的成員」似乎確實存在一個問題。這是一個公認的問題,我找到了Inteli-J的解決方法,但不是Eclipse。

第二個選項(這是我目前使用的選項)是爲Scala解釋器創建一個新的「運行配置」。如果轉到「運行...運行配置」,你應該看到「Scala Interpreter」被列爲啓動程序之一。您可以使用所有默認選項爲此啓動程序創建新配置,並且在運行它時,將在控制檯窗口中獲得scala解釋器提示。從這裏你可以腳本到你的心中的內容。你應該能夠通過這種方式來運行腳本文件,方法是定義正確的運行配置(儘管我還沒有這樣做)。

希望這會對某人有用。

+2

感謝您花時間寫這篇文章。 – 2011-09-10 19:59:04

+0

似乎現在工作正常(Eclipse Juno與Scala IDE Helium,每晚) – Markus 2012-12-16 19:22:05

1

不知道從運行Eclipse的腳本,但你可以做這樣的事情:

object Main extends Application { 
    println("Look, no main(args: Array[String])") 
} 
+1

擴展應用程序和使用主要構造函數不建議用於其他短的「測試程序」 – Schildmeijer 2009-10-01 19:44:04

+1

僅供任何人閱讀。現在(自2.8。東西)可以擴展'Application'。代碼在main()函數中運行,而不在構造函數中運行。 – 2011-01-22 17:44:08

2

如果我沒有記錯,斯卡拉Eclipse插件帶有一個交互式控制檯中,你可以執行你的斯卡拉腳本。如何激活它的細節已經逃脫了我,因爲我很久沒有使用Eclipse進行Scala開發。看它,它在那裏。

+1

只需右鍵單擊 - >新建 - > Scala工作表。 – Tex 2012-11-09 20:18:28

10

您可以在項目中打開右鍵單擊一個交互的shell,選擇斯卡拉 - >在XYZ創建解釋。

4

如果你在同一臺機器上安裝了scala發行版,你可以配置「External Tools」來運行scala腳本。

From the menu, select "Run" -> "External Tools" -> "External Tools Configurations...". 
Highlight "Program" and create a new configuration. 
Fill out the dialog like so: 

"Main" tab: 
Name: ScalaScriptRunner 
Location: c:\path\to\scala\bin\scala.bat [or use the *nix equiv] 
Working Directory: ${workspace_loc} 
Arguments: ${resource_loc} 

"Common" tab: 
Check the "Display in Favorites" selection. 

Click "Apply" and "Close". 

現在,如果您突出顯示一個scala腳本文件,則可以從工具欄運行它。 請注意,這與scala eclipse插件無關,事實上,如果安裝了它,您可能必須爲您的腳本命名一個不同的擴展名(.scalascript?)。

+1

是的,我知道你可以做到這一點,但我寧願使用整合的方式。如果插件會通過shebang(!#)區分腳本和程序,或者允許您創建腳本 - 那將會很棒。 – 2009-10-09 04:09:23