Java virtual machine

JVMJavaJava Runtime EnvironmentJREvirtual machineJava Virtual MachinesJava (JVM)Java VMgeneric JVMjava application launcher
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode.wikipedia
596 Related Articles

List of JVM languages

JVM languagesJava/JVMJVM
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode.
This list of JVM Languages comprises notable computer programming languages that are used to produce computer software that runs on the Java virtual machine (JVM).

Java (software platform)

JavaJava platformJava software platform
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode.
Writing in the Java programming language is the primary way to produce code that will be deployed as byte code in a Java virtual machine (JVM); byte code compilers are also available for other languages, including Ada, JavaScript, Python, and Ruby.

HotSpot

Hotspot compilerHotSpot Java Virtual MachineHotSpot Zero
The JVM reference implementation is developed by the OpenJDK project as open source code and includes a JIT compiler called HotSpot. One of Oracle's JVMs is named HotSpot, the other, inherited from BEA Systems is JRockit.
HotSpot, released as Java HotSpot Performance Engine, is a Java virtual machine for desktop and server computers, maintained and distributed by Oracle Corporation.

Virtual machine

virtual machinesVMvirtual server
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode.
This type of VM has become popular with the Java programming language, which is implemented using the Java virtual machine.

Java Platform, Standard Edition

J2SEJava SEJava
Starting with Java Platform, Standard Edition (J2SE) 5.0, changes to the JVM specification have been developed under the Java Community Process as JSR 924.
Java SE defines a range of general-purpose APIs—such as Java APIs for the Java Class Library—and also includes the Java Language Specification and the Java Virtual Machine Specification.

Java class file

class filesclass file.class
, changes to specification to support changes proposed to the class file format (JSR 202) are being done as a maintenance release of JSR 924.
A Java class file is a file (with the .class filename extension) containing Java bytecode that can be executed on the Java Virtual Machine (JVM).

JRockit

Oracle JRockit
One of Oracle's JVMs is named HotSpot, the other, inherited from BEA Systems is JRockit.
JRockit, was a proprietary Java virtual machine (JVM) originally developed by Appeal Virtual Machines and acquired by BEA Systems in 2002, became part of Oracle Fusion Middleware as part of acquisition of BEA Systems in 2008.

Kaffe

Clean-room Java implementations include Kaffe, IBM J9 and Skelmir's CEE-J.
Kaffe is a clean room design of a Java Virtual Machine.

OpenJ9

Eclipse OpenJ9IBM J9J9 JVM
Clean-room Java implementations include Kaffe, IBM J9 and Skelmir's CEE-J.
Eclipse OpenJ9 is a high performance, scalable, Java virtual machine (JVM) implementation that is fully compliant with the Java Virtual Machine Specification.

Java bytecode

bytecodebyte codeJVM instruction set
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode.
Java bytecode is the instruction set of the Java virtual machine (JVM).

JRuby

JRuby and Jython are perhaps the most well-known ports of existing languages, i.e. Ruby and Python respectively.
JRuby is an implementation of the Ruby programming language atop the Java Virtual Machine, written largely in Java.

OpenJDK

OpenJDK 6
The JVM reference implementation is developed by the OpenJDK project as open source code and includes a JIT compiler called HotSpot.
Sun released the Java HotSpot virtual machine and compiler as free software under the GNU General Public License on November 13, 2006, with a promise that the rest of the JDK (which includes the Java Runtime Environment) would be placed under the GPL by March 2007, "except for a few components that Sun does not have the right to publish in source form under the GPL".

Scala (programming language)

ScalaScala programming languageScala.js
Of the new languages that have been created from scratch to compile to Java bytecode, Clojure, Apache Groovy, Scala and Kotlin may be the most popular ones.
Scala source code is intended to be compiled to Java bytecode, so that the resulting executable code runs on a Java virtual machine.

Java Class Library

class libraryJava APIJCL
More complex than just emulating bytecode is compatibly and efficiently implementing the Java core API that must be mapped to each host operating system.
Almost all of JCL is stored in a single Java archive file called "rt.jar", which is provided with JRE and JDK distributions.

Instruction set architecture

instruction setinstructionsinstruction
The JVM has instructions for the following groups of tasks:
Some virtual machines that support bytecode as their ISA such as Smalltalk, the Java virtual machine, and Microsoft's Common Language Runtime, implement this by translating the bytecode for commonly used code paths into native machine code.

Type signature

signaturetype annotationmethod signature
(Although has been treated as a type since The Java Virtual Machine Specification, Second Edition clarified this issue, in compiled and executed code there is little difference between a and a except for name mangling in method signatures and the type of boolean arrays.
In the Java virtual machine, internal type signatures are used to identify methods and classes at the level of the virtual machine code.

Apache Groovy

GroovyApache Groovy programming languageThe Groovy Programming Language
Of the new languages that have been created from scratch to compile to Java bytecode, Clojure, Apache Groovy, Scala and Kotlin may be the most popular ones.
It can be used as both a programming language and a scripting language for the Java Platform, is compiled to Java virtual machine (JVM) bytecode, and interoperates seamlessly with other Java code and libraries.

Kotlin (programming language)

KotlinKotlin Programming LanguageKotlin (Beta)
Of the new languages that have been created from scratch to compile to Java bytecode, Clojure, Apache Groovy, Scala and Kotlin may be the most popular ones.
Kotlin is designed to interoperate fully with Java, and the JVM version of its standard library depends on the Java Class Library, but type inference allows its syntax to be more concise.

Da Vinci Machine

Multi Language Virtual MachineSupporting Dynamically Typed Languages on the JavaTM Platform
This feature is developed within the Da Vinci Machine project whose mission is to extend the JVM so that it supports languages other than Java.
The Da Vinci Machine, also called the Multi Language Virtual Machine was a Sun Microsystems project aiming to prototype the extension of the Java Virtual Machine to add support for dynamic languages.

Java Community Process

JSRJCPJSRs
Starting with Java Platform, Standard Edition (J2SE) 5.0, changes to the JVM specification have been developed under the Java Community Process as JSR 924.

Plug-in (computing)

plug-inpluginplugins
, most web browsers and operating systems bundling web browsers do not ship with a Java plug-in, nor do they permit side-loading any non-Flash plug-in.
(These are a different type of software module than browser extensions.) Two plug-in examples are the Adobe Flash Player for playing videos and a Java virtual machine for running applets.

Java applet

appletJavaapplets
This is designed to allow safe execution of untrusted code from remote sources, a model used by Java applets, and other secure code downloads. The NPAPI Java browser plug-in was designed to allow the JVM to execute so-called Java applets embedded into HTML pages.
The user launched the Java applet from a web page, and the applet was then executed within a Java virtual machine (JVM) in a process separate from the web browser itself.

NPAPI

Mozilla pluginNetscapeNetscape Plugin API
The NPAPI Java browser plug-in was designed to allow the JVM to execute so-called Java applets embedded into HTML pages.
It is no longer needed with the release of a redesigned Java Runtime Environment from Sun Microsystems.

Stack machine

stack architecturestack-basedpush down stack
Thus, the JVM is both a stack machine and a register machine.
the Java virtual machine instruction set

Language interoperability

compatible with each otherinterface to foreign languages
A notable feature with the JVM languages is that they are compatible with each other, so that, for example, Scala libraries can be used with Java programs and vice versa.
Some object oriented languages can do this thanks to the hosting virtual machine (e.g. .NET CLI compliant languages in the Common Language Runtime and JVM compliant languages in the Java Virtual Machine).