2015-09-23 2 views
0

Они могут быть много JVM за оперативную систему или это только одна JVM для каждой операционной системы? Я также читал, что с помощью «Runtime.exit()» мы останавливаем выполнение JVM?Что это значит, остановите JVM с выходом()?

Я немного смущен, потому что я всегда думал, что JVM - это машина, которая никогда не перестает работать, всегда пробуждается, ожидая вызова, например, «java App.class».

+3

Связанный вопрос: [Есть ли один jvm для java-приложения?] (Http://stackoverflow.com/questions/5947207/is-there-one-jvm-per-java-application) – NiziL

+0

Кроме того, вы никогда не захотите скажем, 'java App.class'. Это всегда 'java App'; JRE добавляет .class –

ответ

0

JVM - это абстрактная концепция, и на операционную систему может быть много экземпляров. Реализация обычно осуществляется через среду выполнения Java. И когда вызывается exit, время выполнения останавливается. JVM, безусловно, может остановиться. И (на большинстве компьютеров) он должен быть явно запущен.

0

i'have всегда thougth, что JVM это машина, которая никогда не перестает работать, всегда пробудить в ожидании можно назвать, например, в «Java App.class»

Нет, это не так, как Работает JVM. Это не фоновый процесс, ожидающий выполнения ваших Java-программ. На одном компьютере работает не только одна JVM.

Всякий раз, когда вы запускаете Java-программу, запускается новая JVM. Когда у вас одновременно работает несколько программ Java, вы запускаете несколько JVM. Каждая программа работает в собственной JVM.

System.exit() останавливает JVM, на котором запущено текущее приложение Java. Он не влияет на другие программы Java, запущенные на одном компьютере.

+0

спасибо Jesper, :) –

0

Если вы запустите приложение java (прямо или косвенно с командой оболочки java), то создается экземпляр JVM и запускается.

Когда заканчивается приложение (либо по достижении конца или через System.exit() то экземпляр JVM останавливается.

Конечно, вы можете иметь несколько Java приложений, работающих одновременно. Каждый из них будет находиться в отдельном экземпляре виртуальной машины Java.

0

Они могли бы быть много JVMs в оперативной системе, или это только одна JVM в оперативной системе?

вы можете сделать что-либо. вы можете запустить JVM для каждой команды, или вы можете использовать ар для запуска ваших java-приложений. (У вас есть несколько серверов приложений)

Я также прочитал, что с помощью функции «Runtime.exit()» мы прекратили выполнение JVM?

Это приводит к отключению JVM. Процесс выполняет некоторую работу, такую ​​как вызов выключения «Крючки» после вызова.

я»м немного путают, потому что i'have всегда thougth, что JVM это машина, которая никогда не перестанет работать,

Он может быть использован таким образом. Например, scala имеет компилятор daemon, который используется для компиляции программ scala.

всегда пробуждается в ожидании вызова, например, «java App.class».

При запуске любой программы (java или нет) это всегда запускает новую программу. только раз это не происходит для встроенных команд оболочки. например set