2010-09-02 2 views

Trả lời

46

Bạn có thể chạy mã byte do Scala tạo nếu bạn bao gồm tất cả các thư viện thời gian chạy cần thiết cho Scala (scala-library.jar, scala-swing.jar ...) trong đường dẫn lớp. Lệnh scala thực hiện điều này tự động và hỗ trợ các đối số dòng lệnh cụ thể của Scala.

5

Scala được thiết kế để tích hợp dễ dàng với các ứng dụng chạy trên máy ảo hiện đại, chủ yếu là các máy ảo Java (JVM). Trình biên dịch Scala chính, scalac, tạo các lớp Java có thể chạy trên JVM. ->http://www.artima.com/scalazine/articles/steps.html

Chừng nào bạn đã cài đặt thời gian chạy scala bạn nên sử dụng tốt: biên dịch các lớp học với scalac và chạy chúng với java.

12

Có, nó có thể. Scala được biên dịch xuống Java bytecode. Nhưng hãy nhớ rằng nó phụ thuộc vào các lớp thời gian chạy của Scala, vì vậy bạn cần phải có các tệp jar của Scala trên classpath.

Nếu vậy, tại sao chúng tôi có lệnh scala độc quyền?

Trình bao bọc tiện lợi.

+1

scala là một thông dịch viên, trong khi scalac là một comp iler .. nó không chỉ để thuận tiện mà còn là một kỹ thuật khác. – atamanroman

+0

Bạn có thể bắt đầu trình thông dịch scala với lệnh "java" nếu bạn đã thử ... – Thilo

+0

Bạn cũng có thể bắt đầu trình biên dịch - đó chỉ là một lớp khác cần chạy (scala.tools.nsc.Main, với các đối số thích hợp)). Nhưng thuận tiện là thuận tiện, vậy tại sao làm nó một cách khó khăn? –

3

Chỉ muốn thêm câu trả lời của riêng tôi như giá trị bổ sung cho các độc giả trong tương lai:

scala, nếu chạy mà không có tham số, sẽ chạy một trình bao tương tác

scala, nếu chạy với một tên tập tin văn bản như tham số, sẽ coi các tập tin như một kịch bản scala

hai không thể được thực hiện bằng java

+4

Cả hai đều có thể được thực hiện, nhưng nó đặc biệt gây phiền nhiễu để làm điều đó - bạn phải gọi scala.tools.nsc.MainGenericRunner và chắc chắn rằng các công cụ thích hợp là trong classpath. Tại sao không chỉ để kịch bản scala làm điều đó cho bạn? –