繁体   English   中英

Scala中的初学者问题

[英]A beginner's question in Scala

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

还是Scala在服务器端运行,我感到困惑?

如果我估计正确,则可以同时拥有:服务器端和客户端。

如果要在服务器上使用它,则将其称为Servlet并编译为JSP应用程序。

如果要在客户端上使用它,它是一个Applet,可以在JVM中运行。 这就是用户在其浏览器设置中禁用的功能。

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

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

唯一“在浏览器中运行”的 java程序是applet 任何扩展java.applet.Applet类都可以实现此目的。 由于scala类可以扩展java类,因此完全有可能在scala中编写一个applet。

但是,如果scala在Java虚拟机上运行,​​则如果在浏览器中禁用了Java,则此命令无法运行。 (实际上,已编译的scala程序和已编译的Java程序之间没有区别-它们都是bytecode ,它们在JVM上运行)

但是,Applet并不是特别常见,实际上,大多数Scala代码都是服务器端的。 当您看到人们谈论scala和网络时,他们很可能在谈论Lift ,这是Scala的(服务器端)网络框架。

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

我想如果它不给安全模型增加任何混乱,它就可以作为小应用程序很好地工作,但是如果禁用了小应用程序,我想您根本不能运行任何JVM代码。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM