簡體   English   中英

可以編譯Scala程序以在任何JVM上運行,而無需在給定計算機上安裝Scala嗎?

[英]Can a Scala program be compiled to run on any JVM, without having Scala installed on the given machine?

如果我編寫了Scala程序,我是否可以通過某種方式對其進行編譯,以便任何擁有標准Sun Java JVM的人都可以運行它? 我想Scala編譯器必須在編譯項目中包含Scala特定的API代碼? 我感興趣的原因是我們的課程項目通常可以用自己喜歡的任何語言提供,但是分級交付的TA通常希望在他們自己的機器或實驗室機器上運行代碼。

您無需執行任何特殊操作即可在JVM上運行已編譯的Scala程序。 它只是普通的JVM字節碼。 您唯一需要的是確保標准Scala庫(scala-library.jar)在運行時包含在類路徑中。 這只是額外的依賴(或者如果你為你的GUI使用Swing包裝器,你也可能需要scala-swing.jar)。

如果您擔心用戶的方便,您甚至可以將應用程序打包到單個jar中,因此它包含scala-library.jar的內容以及您自己的類和資源。 但我個人只有在這個jar可執行時才會這樣做(可以作為java -jar yourApplication.jar運行)。

關於Scala庫的注意事項:

  1. 它提供了 - 庫。 沒有解釋器,沒有編譯器或某種特殊的執行環境; 所以你不應該擔心類加載問題。
  2. 它應該與您在編譯程序期間使用的Scala版本相匹配(2.7和2.8的Scala庫不可互換)。
  3. 它可以在Scala發行版中找到:lib / scala-library.jar

是。 如果在類路徑中包含相應的scala庫jar文件,則可以使用java運行scala程序,因為編譯的scala代碼與已編譯的java代碼相同。

如果您曾經使用過任何Java庫,那么就像對待Scala一樣。 獲取Scala的jar(庫中的jar),然后使用其中一個程序將它與jar一起打包,或者將它們一起分發。

暫無
暫無

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

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