Jvm java runtime environment

Jvm java runtime environment

Набор инструментов разработки на Java (JDK), виртуальная машина (JVM) и среда выполнения (JRE) образуют вместе мощную тройку компонентов платформы для разработки и запуска Java-приложений. В этом кратком руководстве вы узнаете о JRE — среде выполнения Java.

Фактически, среда выполнения — это часть программного обеспечения, предназначенная для запуска другого программного обеспечения. Как среда выполнения для Java, JRE содержит библиотеки классов, загрузчик классов и виртуальную машину Java. В этой системе:

  • Загрузчик классов отвечает за правильную загрузку классов и их связь с основными библиотеками классов Java
  • JVM отвечает за обеспечение Java-приложений ресурсами, необходимыми для их запуска и эффективной работы на устройстве или в облачной среде
  • JRE в основном является контейнером для этих компонентов и отвечает за организацию их деятельности

Каждый раз, когда вы загружаете JDK, он уже будет включать в себя JRE. Эта JRE будет включать JVM по умолчанию. Можно также загрузить JRE отдельно от JDK и выбрать одну из нескольких JVM. Значения по умолчанию подходят для большинства программ, особенно когда вы только начинаете знакомство с Java.

Для запуска и исполнения программы необходима специальная среда выполнения. Она загружает файлы классов, обеспечивает доступ к памяти и другим системным ресурсам. В прошлом, большинство программ использовали операционную систему (ОС) в качестве среды выполнения. Программы запускались на любом компьютере, но для доступа к ресурсам полагались на параметры ОС. В качестве ресурсов выступали память, программные файлы и зависимости. С появлением среды выполнения Java все изменилось, по крайней мере, для Java-программ.

Раньше принцип WORA (англ. «write once, run anywhere – написал один раз, запускай везде») считался революционным, но сегодня это норма для большинства программных систем.

Программное обеспечение можно рассматривать как набор слоев, расположенных поверх системного оборудования. Каждый слой предоставляет службы, которые будут использоваться (и запрашиваться) слоями над ним. Среда выполнения Java — это уровень программного обеспечения, работающий поверх ОС и предоставляющий дополнительные службы, специфичные для Java.

JRE сглаживает разнообразие ОС, гарантируя, что программы Java могут работать практически на любой ОС без изменений. Также автоматическое управление памятью — одна из самых важных функций JRE, гарантирующая, что программистам не придется вручную управлять распределением памяти.

Если коротко, то JRE — это мета-OS для Java-программ. Это классический пример абстракции — абстрагирование базовой ОС в согласованную платформу для запуска приложений Java.

Виртуальная машина Java — программное обеспечение, отвечающее за выполнение Java-программ. JRE — это программа, которая берет ваш Java-код, объединяет его с необходимыми библиотеками и запускает JVM для его выполнения.

JRE содержит программное обеспечение и библиотеки, которые требуются для работы вашей программы. Например, загрузчик классов Java является частью JRE. Эта важная часть программного обеспечения загружает скомпилированный Java-код в память и соединяет с соответствующими библиотеками.

Читайте также:  Execute php function from html

В этом многоуровневом представлении JVM создается средой выполнения Java. С точки зрения пакета, JRE содержит JVM, как показано на рисунке:

Несмотря на концептуальную сторону JRE, в реальной практике — это просто программное обеспечение, установленное на компьютере для запуска Java-программ. Как разработчик вы будете работать с JDK и JVM, т.к. эти компоненты необходимы для разработки и запуска ваших приложений. Как пользователь вы будете использовать JRE для их запуска.

В большинстве случаев компьютеры поставляются с установленной Java, включающей в себя JRE. Если вам когда-либо понадобится установить или обновить JRE вручную, вы можете загрузить актуальную версию JRE с сайта Oracle.

JRE обновляется с каждой новой версией Java, и номера ее версий совпадают с версиями платформы Java. Например, JRE 15 запускает Java 15. Существование множества пакетов JDK (например Enterprise Edition или Standard Edition) не касается JRE. Большинство компьютеров используют JRE, разработанную для Java SE, которая может запускать любое приложение Java независимо от того, как оно было разработано. Большинство мобильных устройств поставляются с JRE для Java ME, которая предварительно установлена на мобильном устройстве и недоступна для загрузки.

После того, как JRE установлена, вы можете узнать ее версию с помощью командной строки, введя в терминале команду java -version . В POSIX-системах вы всегда можете проверить место установки с помощью which java (работает и в win).

Источник

Differences between JDK, JRE and JVM

Java Development Kit (JDK) is a software development environment used for developing Java applications and applets. It includes the Java Runtime Environment (JRE), an interpreter/loader (Java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), and other tools needed in Java development.

Now we need an environment to make a run of our program. Henceforth, JRE stands for “Java Runtime Environment” and may also be written as “Java RTE.” The Java Runtime Environment provides the minimum requirements for executing a Java application; it consists of the Java Virtual Machine (JVM), core classes, and supporting files.

Now let us discuss JVM, which stands out for java virtual machines. It is as follows:

  • A specification where the working of Java Virtual Machine is specified. But implementation provider is independent to choose the algorithm. Its implementation has been provided by Sun and other companies.
  • An implementation is a computer program that meets the requirements of the JVM specification.
  • Runtime Instance Whenever you write a java command on the command prompt to run the java class, an instance of JVM is created.
Читайте также:  Java no firefox fedora

Before proceeding to the differences between JDK, JRE, and JVM, let us discuss them in brief first and interrelate them with the image below proposed.

Don’t get confused as we are going to discuss all of them one by one.

1. JDK (Java Development Kit) is a Kit that provides the environment to develop and execute(run) the Java program. JDK is a kit(or package) that includes two things

  • Development Tools(to provide an environment to develop your java programs)
  • JRE (to execute your java program).

2. JRE (Java Runtime Environment) is an installation package that provides an environment to only run(not develop) the java program(or application)onto your machine. JRE is only used by those who only want to run Java programs that are end-users of your system.

3. JVM (Java Virtual Machine) is a very important part of both JDK and JRE because it is contained or inbuilt in both. Whatever Java program you run using JRE or JDK goes into JVM and JVM is responsible for executing the java program line by line, hence it is also known as an interpreter.

Now let us discuss the components of JRE in order to understand its importance of it and perceive how it actually works. For this let us discuss components.

The components of JRE are as follows:

  1. Deployment technologies, including deployment, Java Web Start, and Java Plug-in.
  2. User interface toolkits, including Abstract Window Toolkit (AWT), Swing, Java 2D, Accessibility, Image I/O, Print Service, Sound, drag, and drop (DnD), and input methods.
  3. Integration libraries, including Interface Definition Language (IDL), Java Database Connectivity (JDBC), Java Naming and Directory Interface (JNDI), Remote Method Invocation (RMI), Remote Method Invocation Over Internet Inter-Orb Protocol (RMI-IIOP), and scripting.
  4. Other base libraries, including international support, input/output (I/O), extension mechanism, Beans, Java Management Extensions (JMX), Java Native Interface (JNI), Math, Networking, Override Mechanism, Security, Serialization, and Java for XML Processing (XML JAXP).
  5. Lang and util base libraries, including lang and util, management, versioning, zip, instrument, reflection, Collections, Concurrency Utilities, Java Archive (JAR), Logging, Preferences API, Ref Objects, and Regular Expressions.
  6. Java Virtual Machine (JVM), including Java HotSpot Client and Server Virtual Machines.
Читайте также:  Javascript onload ready function

After having an adequate understanding of the components, now let us discuss the working of JDK. In order to understand how JDK works, let us consider an illustration below as follows:

Illustration:

Consider a java source file saved as ‘Example.java’. The file is compiled into a set of Byte Code that is stored in a “.class” file. Here it will be “Example.class“.

Compile time

  • Class Loader
  • Byte Code Verifier
  • Interpreter
    • Execute the Byte Code
    • Make appropriate calls to the underlying hardware

    Now let us discuss in brief how JVM works out. It is as follows:

    JVM becomes an instance of JRE at the runtime of a Java program. It is widely known as a runtime interpreter.JVM largely helps in the abstraction of inner implementation from the programmers who make use of libraries for their programs from JDK.

    It is mainly responsible for three activities.

    Similarly, now let us discuss the working of JRE which is as follows:

    • JVM(Java Virtual Machine) acts as a run-time engine to run Java applications. JVM is the one that actually calls the main method present in a java code. JVM is a part of JRE(Java Runtime Environment).
    • Java applications are called WORA (Write Once Run Anywhere). This means a programmer can develop Java code on one system and can expect it to run on any other Java-enabled system without any adjustments. This is all possible because of JVM.
    • When we compile a .java file, .class files(contains byte-code) with the same class names present in .java file are generated by the Java compiler. This .class file goes into various steps when we run it. These steps together describe the whole JVM.

    This article is contributed by Krishna Bhatia. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please write comments if you find anything incorrect, or if you want to share more information about the topic discussed above.

    Источник

Оцените статью