我是一名初學者,學習在scala-akka中編程,並且在IntelliJ IDE /和'sbt run'上運行我的腳本沒有任何問題。然而,我似乎無法找到任何資源,教我如何手動使用scalac和akka jar依賴項來編譯和運行,只需從命令行。任何人都可以將我指向正確的方向嗎?可能從命令行編譯並運行scala-akka腳本,而不需要像sbt這樣的構建工具?
0
A
回答
0
我認爲您應該使用classpath參數和選定的庫jar文件執行scalac
和scala
。
順便說一句,它使用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
一些注意事項:
- 您可以只包括特定的Akka罐而不是所有的罐。
- 如果沒有依賴關係和版本控制由
sbt
管理,則需要手動維護Scala捆綁的Akka庫與Akka自己的庫之間的版本一致性。 - 雖然這是一個很好的練習,以粗略的方式看待事情是如何完成的,但定期執行此操作顯然是徒勞的。
相關問題
- 1. 從命令行編譯並運行java
- 2. 需要在編譯/構建之前運行自定義腳本
- 3. 是否需要從IntelliJ IDE這樣的IDE編譯整個程序才能從命令行運行?
- 4. 編譯後如何從命令行運行dcm4che工具?
- 5. 命令從命令行運行,但不能從shell腳本運行
- 6. 爲什麼不能這樣工作?運行命令+可變
- 7. 可以從命令行編譯,但不能從makefile編譯
- 8. pg_connect - php腳本可以從命令行運行,但不能從網頁運行
- 9. 編譯並通過命令行運行
- 10. Biopython blastn命令不能在腳本中工作,但從命令行運行
- 11. Apple命令行工具和XCode用於開源編譯/構建?
- 12. 需要Torch命令行腳本而不解析命令行參數
- 13. 編譯iOS的命令行腳本
- 14. 命令從命令行運行,而不是從cron運行?
- 15. Shell腳本從命令行運行,而不是cron
- 16. Powershell:腳本不是從命令行運行,而是從ISE運行?
- 17. gdb從命令行運行,但不是從腳本運行
- 18. Powershell腳本從命令行運行,但不是從TFS運行
- 19. bash腳本從命令行運行但不是從cron運行
- 20. 那樣json.dump工作在命令行,而不是一個腳本
- 21. 如何構建和運行github上的Ruby命令行工具?
- 22. 爲什麼我不能運行CMD命令對於像這樣:
- 23. 我怎樣才能從bash腳本運行django shell命令
- 24. 從java執行命令行工具因命令行而異?
- 25. 從命令行運行Perl腳本?
- 26. 從命令行運行Groovy腳本
- 27. 從命令行運行Sqlite3腳本
- 28. 如何從命令行運行腳本?
- 29. 從vim命令行運行vim腳本
- 30. 需要「構建」一個mysql命令並將其在shell腳本中執行它
感謝Leo!這很有幫助。我設法讓我的腳本以這種粗糙的方式工作。對於像我這樣的初學者來說,它確實有助於看到引擎蓋下面躺着什麼,而不是盲目地依靠sbt來爲我做所有事情。此後我也學會了如何使用sbt本地包裝插件來打包我的scala程序 – jorjor17
還值得注意的是,我最初認爲我只需要akka-actor_2.11-2.4.17.jar用於我的簡單腳本,依賴於akka-actor庫,但不知怎的,當我在命令行上編譯/運行它時,我需要在類路徑中的akka發行版中包含完整的jar集合以使其工作;我的猜測是,不僅僅是我需要在我的類路徑中包含的akka-actor jar,(不知道我需要哪些jar),所以我只是在我的類路徑中包含了整個akka/*分發目錄 – jorjor17