Разница между java.exe, javaw.exe и jvm.dll - PullRequest
28 голосов
/ 14 декабря 2011

В чем разница при запуске приложения (например, Eclipse) с java.exe, javaw.exe и jvm.dll?Кроме того, это имеет какое-то значение с точки зрения производительности?

Ответы [ 2 ]

44 голосов
/ 14 декабря 2011
  • jvm.dll - это фактическая реализация JVM для Windows (или, лучше, основная точка входа).Приложения C или C ++ могут использовать эту DLL для запуска встроенной среды выполнения Java, что позволит приложению напрямую взаимодействовать с JVM, например, если они хотят использовать Java для своего графического интерфейса.

  • java.exe - это оболочка для DLL, так что люди могут запускать классы Java без необходимости в специальном приложении запуска.Это консольное приложение Win32, поэтому Windows откроет новое окно командной строки, если exe-файл не запускается из пакетного файла.

  • javaw.exe - это оболочка типа java.exe,но это приложение Win32 GUI.Windows не нужно открывать окно командной строки, это именно то, что вы хотите запустить приложение с графическим интерфейсом, которое открывает свои собственные окна.

РЕДАКТИРОВАТЬ: это не должно иметь никакого значенияв производительности, за исключением затрат на создание и инициализацию процесса.

Самое главное: это не должно иметь значения;если вы беспокоитесь об этом, вы, возможно, захотите оставить Java запущенным, а не запускать его сотни раз.

8 голосов
/ 14 декабря 2011
  • java.exe - запустить программу на Java (необходимо указать классы и / или JAR-файлы), начиная с указанного класса, содержащего метод main().

  • javaw.exe - как указано выше, но не создает командную строку Windows (подходит для программ Swing, которым не требуется консоль).

  • jvm.dll - это не работоспособный объект, а библиотека. Возможно используется обеими программами выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...