Scala中的初学者问题

时间:2009-10-11 19:57:02

标签: java scala

scala程序是否可以在具有禁用java插件的浏览器上运行(因为scala被编译为jvm字节码)?换句话说:如果java浏览器插件被禁用,jvm是否被禁用?

或者Scala是否运行服务器端,我很困惑?

4 个答案:

答案 0 :(得分:3)

如果我估算得当,你可以同时拥有:服务器端和客户端。

如果您想在服务器上使用它,它被称为Servlet并编译为JSP应用程序。

如果您想在客户端上使用它,它是一个Applet并在JVM中运行。这就是用户在浏览器设置中禁用的内容。

据我所知,java和scala编译为由JVM执行的相同类型的字节码。

因此,如果用户禁用了插件,则既不能使用Scala也不能使用Java。浏览器无法区分这两者。

答案 1 :(得分:3)

“在浏览器中运行”的唯一java程序是 applet ;任何延长java.applet.Applet的班级都将达到此目的。由于scala类可以扩展java,因此完全可以在scala中编写applet。

但是,如果在Java虚拟机上运行scala时在浏览器中禁用了java,则无法运行。 (事实上​​,编译的scala程序和编译的Java程序之间没有区别 - 它们都是字节码,它运行在JVM

然而,Applet并不是特别常见,并且大多数scala代码在实践中都是服务器端的。当你看到人们谈论scala和网络时,他们很可能正在讨论Lift,它是Scala的(服务器端)Web框架。

答案 2 :(得分:2)

Scala几乎总是在服务器上运行,或者作为普通桌面“java”应用程序运行。

我认为它可以很好地作为applet工作,如果它不会给安全模型增加任何混淆,但是如果applet被禁用,我认为你根本不能运行任何JVM代码。

答案 3 :(得分:1)

关于Lift,服务器端运行Scala,但客户端运行自动生成的Javascript,不需要jvm。