2017-04-06 55 views

回答

0

我認爲您應該使用classpath參數和選定的庫jar文件執行scalacscala

順便說一句,它使用sbt更方便。

1

讓我們假設你有Scala和阿卡在/ home/LEO /應用/和Scala的二進制文件的地方安裝了可搜索(如export PATH=$PATH:home/leo/apps/scala-2.11.8/bin

接下來,讓我們說你有一些補充沿有一個Scala的主要應用Tweets.scala封裝在akkastreams類在/ home/LEO/myproject的/:

akkastreams/ 
    Tweets.scala 
    Author.scala 
    HashTag.scala 
    Message.scala 
    ... 

這裏就是你的編譯和運行應用程序:

cd /home/leo/myproject/ 

# Compile all files in package akkastreams: 
scalac -cp "/home/leo/apps/akka-2.4.9/lib/akka/*" akkastreams/*.scala 

# Run the main app Tweets (object Tweets extends App): 
# Note that classpath includes also current subdir '.' 
scala -cp "/home/leo/apps/akka-2.4.9/lib/akka/*:." akkastreams.Tweets 

一些注意事項:

  1. 您可以只包括特定的Akka罐而不是所有的罐。
  2. 如果沒有依賴關係和版本控制由sbt管理,則需要手動維護Scala捆綁的Akka庫與Akka自己的庫之間的版本一致性。
  3. 雖然這是一個很好的練習,以粗略的方式看待事情是如何完成的,但定期執行此操作顯然是徒勞的。
+0

感謝Leo!這很有幫助。我設法讓我的腳本以這種粗糙的方式工作。對於像我這樣的初學者來說,它確實有助於看到引擎蓋下面躺着什麼,而不是盲目地依靠sbt來爲我做所有事情。此後我也學會了如何使用sbt本地包裝插件來打包我的scala程序 – jorjor17

+0

還值得注意的是,我最初認爲我只需要akka-actor_2.11-2.4.17.jar用於我的簡單腳本,依賴於akka-actor庫,但不知怎的,當我在命令行上編譯/運行它時,我需要在類路徑中的akka​​發行版中包含完整的jar集合以使其工作;我的猜測是,不僅僅是我需要在我的類路徑中包含的akka​​-actor jar,(不知道我需要哪些jar),所以我只是在我的類路徑中包含了整個akka/*分發目錄 – jorjor17

相關問題