You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/reference-manual/java-on-truffle/FAQ.md
+4-5Lines changed: 4 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,13 +15,13 @@ In the GraalVM family, this is similar to WebAssembly or the LLVM interpreter: w
15
15
16
16
### Does Java running on Truffle run on the HotSpot JVM too?
17
17
Like other languages implemented with the [Truffle framework](../../../truffle/docs/README.md), it can run both as a native executable or on top of the HotSpot JVM.
18
-
Running on top of the HotSpot JVM is currently only possible on Linux.
19
-
We plan to extend this capability to macOS and Windows platforms.
18
+
Running on top of the HotSpot JVM is currently only possible on Linux x64 and macOS x64.
19
+
We plan to extend this capability to other platforms.
20
20
21
21
### Does running Java on Truffle require the HotSpot JVM?
22
22
23
23
No, it doesn't, it works fine as a native executable.
24
-
Java on Truffle does require a standard core Java library (the _rt.jar_ library for Java 8 or the `lib/modules` file for Java 11 and Java 17 as well as the associated native libraries: `libjava`, `libnio`, etc.)
24
+
Java on Truffle does require a standard core Java library (the _rt.jar_ library for Java 8 or the `lib/modules` file for Java 11+ as well as the associated native libraries: `libjava`, `libnio`, etc.).
25
25
26
26
### Running Java on GraalVM already brings the highest level of optimization, what benefits will Java on Truffle give me?
27
27
- Java on Truffle will inherit the extensive tooling provided by the Truffle framework. This means that for the things like code coverage and profiling you would no longer need to rely on external tools.
@@ -33,8 +33,7 @@ Java on Truffle does require a standard core Java library (the _rt.jar_ library
33
33
Java on Truffle is an implementation of the Java Virtual Machine. It is open source and is offered as free software under the [GNU General Public License version two (GPLv2)](https://github.com/oracle/graal/blob/master/tools/LICENSE).
34
34
35
35
### Can I run Java on Truffle in production?
36
-
Yes, you can. Java on Truffle is still a prototype, but it already passes the Java Compatibility Kit (JCK or TCK for Java SE) 8, 11, 17, and 21.
37
-
It may undergo significant improvements.
36
+
Yes, you can on Linux x64. Support for other platforms is still experimental.
38
37
39
38
### What performance can I expect from executing Java on Truffle?
40
39
Performance is currently 2-3x slower than the HotSpot JVM.
Java on Truffle operates, like other languages implemented with Truffle, both as a native executable or on top of HotSpot (currently possible on Linux only).
11
11
In the first case, when the Java on Truffle runtime is compiled to a native executable, it does not require HotSpot to run Java.
12
-
However it requires a standard core Java library (the _rt.jar_ library for Java 8 or the _lib/modules file_ for Java 11 as well as the associated native libraries: `libjava`, `libnio`, etc.).
12
+
However, it requires a standard core Java library (the _rt.jar_ library for Java 8 or the _lib/modules file_ for Java 11+ as well as the associated native libraries: `libjava`, `libnio`, etc.).
13
13
14
14
Java on Truffle is a minified Java VM that implements all core components of a VM including:
Using GraalVM, you can run Java applications normally [on the JVM](../java/README.md), in [Native Image](../native-image/README.md), and now on Truffle.
11
-
Java on Truffle is an implementation of the Java Virtual Machine Specification, [Java SE 8](https://docs.oracle.com/javase/specs/jvms/se8/html/index.html) and [Java SE 11](https://docs.oracle.com/javase/specs/jvms/se11/html/index.html), built upon GraalVM as a Truffle interpreter.
12
-
It is a minified Java VM that includes all core components of a VM, implements the same API as the Java Runtime Environment library (`libjvm.so`), and reuses all JAR files and native libraries from GraalVM.
11
+
Java on Truffle is an implementation of the Java Virtual Machine Specification, [Java SE 8](https://docs.oracle.com/javase/specs/jvms/se8/html/index.html), [Java SE 11](https://docs.oracle.com/javase/specs/jvms/se11/html/index.html),[Java SE 17](https://docs.oracle.com/javase/specs/jvms/se17/html/index.html), and [Java SE 21](https://docs.oracle.com/javase/specs/jvms/se21/html/index.html) built upon GraalVM as a Truffle interpreter.
12
+
It is a minified Java VM that includes all core components of a VM, implements the same API as the Java Runtime Environment library (`libjvm.so`), and reuses the existing standard library.
13
13
See the [Implementation Details](ImplementationDetails.md) for more information.
14
14
The project name behind this implementation is "Espresso".
15
15
Its open source version is available on [GitHub](https://github.com/oracle/graal/tree/master/espresso).
@@ -19,7 +19,7 @@ Now Java can be executed by the same principle as other languages in the GraalVM
19
19
Besides complete language interoperability, with Java on Truffle you can:
20
20
21
21
- run Java bytecode in a separate context from the host Java VM.
22
-
- run either a Java 8, Java 11, Java 17, Java 21, or Java 22 guest JVM, allowing to embed e.g. a Java 17 context in a Java 22 application, by using [GraalVM’s Polyglot API](https://www.graalvm.org/sdk/javadoc/org/graalvm/polyglot/package-summary.html).
22
+
- run either a Java 8, Java 11, Java 17, or Java 21 guest JVM, allowing to embed e.g. a Java 17 context in a Java 22 application, by using [GraalVM’s Polyglot API](https://www.graalvm.org/sdk/javadoc/org/graalvm/polyglot/package-summary.html).
23
23
- leverage the whole stack of tools provided by the Truffle framework, not previously available for Java.
24
24
- have an improved isolation of the host Java VM and the Java program running on Truffle, so you can run less trusted guest code.
25
25
- run in the context of a native executable while still allowing dynamically-loaded bytecodes.
@@ -28,16 +28,16 @@ Java on Truffle passes the Java Compatibility Kit (JCK or TCK for Java SE).
28
28
29
29
## Getting Started
30
30
31
-
Java on Truffle (known as Espresso) is available as a standalone distribution.
31
+
Java on Truffle (known as Espresso) is available as a standalone distribution that provides a Java 21 environment.
32
32
You can download a standalone based on Oracle GraalVM or GraalVM Community Edition.
33
33
34
34
1. Download the Java on Truffle (Espresso) 24.0 standalone for your operating system:
0 commit comments