2009-10-11 2 views
0

Может ли программа scala работать в браузере с отключенным java-плагином (поскольку scala скомпилирован в jvm-байт-код)? Другими словами: отключен ли jvm при отключенном плагине браузера java?Вопрос новичка в Scala

Или Scala работает на стороне сервера, и я смущен?

+0

Если вы видите вопрос, на который нужно ответить, подумайте о том, чтобы нажать на один из ответов green tick, чтобы закрыть вопрос. привет – Atmocreations

+0

Название вопроса плохо, потому что оно вообще не описывает эту тему. –

ответ

2

Скала почти всегда запускается на сервере или в обычном рабочем приложении «java».

Я полагаю, что это будет отлично работать как апплет, если он не добавит путаницы к модели безопасности, но если апплеты отключены, я предполагаю, что вы вообще не можете запускать какой-либо JVM-код.

+0

Agh! Спасибо :) – 2009-10-11 20:00:05

3

Если я правильно оцениваю его, вы можете иметь как серверную, так и клиентскую сторону.

Если вы хотите использовать его на сервере, он называется сервлетом и скомпилирован в JSP-приложение.

Если вы хотите использовать его на клиенте, это апплет и запускается в JVM. И это то, что пользователь отключает в настройках браузера.

Насколько я знаю, java и scala компилируются в тот же тип байт-кода, который выполняется JVM.

Следовательно, вы не можете использовать ни Scala, ни Java, если у пользователя отключен плагин. Браузер не может различать эти два.

+0

После компиляции код Scala неотличим от кода Java - «это просто байт-код». (ОК, вы можете указать из названий классов, из чего он скорее всего скомпилировался, но JVM не заботится об этом). –

+0

Я не знаю scala, но то, что вы говорите, было моим предположением. – Atmocreations

3

Единственная Java программа, которая «работает в браузере» является апплет; любой класс, расширяющийся java.applet.Applet, будет служить этой цели. Поскольку класс scala может распространять java, поэтому вполне возможно написать апплет в scala.

Однако это невозможно, если java отключен в браузере, поскольку scala запускается на виртуальной машине Java. (На самом деле, нет никакой разницы между скомпилированной программой лестницы и скомпилированной программой Java - они оба байткодом, который запускается на JVM)

апплетов не особенно распространены, однако, и большинство Scala код будет сервер на практике. Когда вы видите, что люди говорят о scala и в Интернете, они, скорее всего, говорят о Lift, который является (серверной) веб-картой для Scala.

1

Что касается подъема, на стороне сервера работает Scala, но на стороне клиента запускается автоматически сгенерированный Javascript, который не нуждается в jvm.

Смежные вопросы