Excelsior JET

Last updated
Excelsior JET
Developer(s) Excelsior LLC
Initial release2000;23 years ago (2000)
Final release
15.3 / November 22, 2018;4 years ago (2018-11-22)
Written in Modula-2, Oberon-2, Java, Scala, C++, Assembly
Operating system Windows, macOS, and Linux
Platform IA-32, AMD64 and ARM
Type Ahead-of-time (AOT) native code compiler, runtime, and deployment toolkit for Java applications
License EULA
Website www.excelsiorjet.com

Excelsior JET is a now-defunct proprietary Java SE technology implementation built around an ahead-of-time (AOT) Java to native code compiler. The compiler transforms the portable Java bytecode into optimized executables for the desired hardware and operating system (OS). Also included are a Java runtime featuring a just-in-time (JIT) compiler for handling classes that were not precompiled for whatever reason (e.g. third-party plugins or dynamic proxies), the complete Java SE API implementation licensed [1] from Oracle, and a toolkit to aid deployment of the optimized applications. Excelsior JET was developed by Excelsior LLC, headquartered in Novosibirsk, Russia.

Contents

Overview

Excelsior JET passed the "official" test suite (TCK) for Java SE 8, and was certified Java Compatible on macOS and a number of Windows and Linux flavors running on Intel x86, AMD64/Intel 64 and compatible hardware. (The macOS version was 64-bit only.)

The Enterprise Edition supported the Equinox OSGi runtime at the JVM level, enabling ahead-of-time compilation of Eclipse RCP (Rich Client Platform) applications, [2] [3] and version 7.0 added such support for Web applications running on Apache Tomcat. [4] [5] Version 10.5 introduced a new garbage collector optimized for multi-core and multi-CPU systems [6]

Excelsior JET Embedded [7] implements the Java SE for Embedded technology in a very similar manner. The only major differences used to be in licensing and pricing, but as of the latest version Excelsior JET Embedded also supports ARM-based platforms.

Latest Release

Version 15 introduced incremental compilation for AMD64 and ARM targets and improved application performance across all platforms.

Product EOL

On May 15, 2019, Excelsior announced discontinuation of Excelsior JET in an e-mail to their customers [8] and next day also on their website. [9] Support was announced to be stopped and the engineering team to leave completely within only ~2 weeks ("early June 2019") and Website for downloads announced to be offline mid of June (within only ~4 weeks). At August 7, 2019, it was announced [10] Excelsior was acquired by Huawei.

See also

Related Research Articles

<span class="mw-page-title-main">Java (programming language)</span> Object-oriented programming language

Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need to recompile. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but has fewer low-level facilities than either of them. The Java runtime provides dynamic capabilities that are typically not available in traditional compiled languages.

<span class="mw-page-title-main">Java virtual machine</span> Java Virtual machine

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. The JVM is detailed by a specification that formally describes what is required in a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform.

Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices. Java ME was formerly known as Java 2 Platform, Micro Edition or J2ME. As of December 22, 2006, the Java ME source code is licensed under the GNU General Public License, and is released under the project name phoneME.

A computing platform, digital platform, or software platform is an environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser and associated application programming interfaces, or other underlying software, as long as the program code is executed with it. Computing platforms have different abstraction levels, including a computer architecture, an OS, or runtime libraries. A computing platform is the stage on which computer programs can run.

In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits wide. Also, 64-bit central processing units (CPU) and arithmetic logic units (ALU) are those that are based on processor registers, address buses, or data buses of that size. A computer that uses such a processor is a 64-bit computer.

<span class="mw-page-title-main">Free Pascal</span> Free compiler and IDE for Pascal and ObjectPascal

Free Pascal Compiler (FPC) is a compiler for the closely related programming-language dialects Pascal and Object Pascal. It is free software released under the GNU General Public License, with exception clauses that allow static linking against its runtime libraries and packages for any purpose in combination with any other software license.

Apache Harmony is a retired open source, free Java implementation, developed by the Apache Software Foundation. It was announced in early May 2005 and on October 25, 2006, the board of directors voted to make Apache Harmony a top-level project. The Harmony project achieved 99% completeness for J2SE 5.0, and 97% for Java SE 6. The Android operating system has historically been a major user of Harmony, although since Android Nougat it increasingly relies on OpenJDK libraries.

Java Card is a software technology that allows Java-based applications (applets) to be run securely on smart cards and more generally on similar secure small memory footprint devices which are called "secure elements" (SE). Today, a Secure Element is not limited to its smart cards and other removable cryptographic tokens form factors; embedded SEs soldered onto a device board and new security designs embedded into general purpose chips are also widely used. Java Card addresses this hardware fragmentation and specificities while retaining code portability brought forward by Java.

<span class="mw-page-title-main">Java (software platform)</span> Set of computer software and specifications

Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages.

OpenJDK is a free and open-source implementation of the Java Platform, Standard Edition. It is the result of an effort Sun Microsystems began in 2006. The implementation is licensed under the GPL-2.0-only with a linking exception. Were it not for the GPL linking exception, components that linked to the Java Class Library would be subject to the terms of the GPL license. OpenJDK is the official reference implementation of Java SE since version 7.

In software development, the programming language Java was historically considered slower than the fastest 3rd generation typed languages such as C and C++. The main reason being a different language design, where after compiling, Java programs run on a Java virtual machine (JVM) rather than directly on the computer's processor as native code, as do C and C++ programs. Performance was a matter of concern because much business software has been written in Java after the language quickly became popular in the late 1990s and early 2000s.

In computer science, ahead-of-time compilation is the act of compiling an (often) higher-level programming language into an (often) lower-level language before execution of a program, usually at build-time, to reduce the amount of work needed to be performed at run time.

Comparison of the Java and .NET platforms.

<span class="mw-page-title-main">JavaFX</span> Java software platform for GUI

JavaFX is a software platform for creating and delivering desktop applications, as well as rich web applications that can run across a wide variety of devices. JavaFX has support for desktop computers and web browsers on Microsoft Windows, Linux, and macOS, as well as mobile devices running iOS and Android, through Gluon Mobile.

Eclipse OpenJ9 is a high performance, scalable, Java virtual machine (JVM) implementation that is fully compliant with the Java Virtual Machine Specification.

Dalvik is a discontinued process virtual machine (VM) in the Android operating system that executes applications written for Android. Dalvik was an integral part of the Android software stack in the Android versions 4.4 "KitKat" and earlier, which were commonly used on mobile devices such as mobile phones and tablet computers, and more in some devices such as smart TVs and wearables. Dalvik is open-source software, originally written by Dan Bornstein, who named it after the fishing village of Dalvík in Eyjafjörður, Iceland.

<span class="mw-page-title-main">Azul Systems</span> Computer manufacturer of appliances for executing Java-based applications

Azul Systems, Inc. develops runtimes for executing Java-based applications. Founded in March 2002, Azul Systems has headquarter in Sunnyvale, California.

The Java Development Kit (JDK) is a distribution of Java Technology by Oracle Corporation. It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java Application Programming Interface (API). It is derivative of the community driven OpenJDK which Oracle stewards. It provides software for working with Java applications. Examples of included software are the virtual machine, a compiler, performance monitoring tools, a debugger, and other utilities that Oracle considers useful for a Java programmer.

<span class="mw-page-title-main">GraalVM</span> Java virtual machine

GraalVM is a Java VM and JDK based on HotSpot/OpenJDK, implemented in Java. It supports additional programming languages and execution modes, like ahead-of-time compilation of Java applications for fast startup and low memory footprint. The first production-ready version, GraalVM 19.0, was released in May 2019. The most recent version is GraalVM 23.0.0 , made available in June 2023.

References

  1. "Java SE Licensees". Oracle Corporation. Archived from the original on July 17, 2012. Retrieved 17 Jul 2012.
  2. Craig Wickesser (23 Jul 2009). "Commercial Java Compiler Protects Eclipse RCP Applications". InfoQ.
  3. Dana Blankenhorn (1 Aug 2008). "Excelsior JET from Russia, with love". ZDNet. Retrieved 22 May 2012.
  4. Brittain, Jason; Darwin, Ian F. (28 November 2007). "Section A.7. Excelsior JET". Tomcat: The Definitive Guide (Second ed.). O'Reilly Media, Inc. ISBN   978-0-596-10106-0.
  5. Cameron McKenzie (20 Apr 2010). "Forget the JOP. Just Compile Your Tomcat War Files into Native Code". TheServerSide. Retrieved 22 May 2012.
  6. John K. Waters (11 Feb 2015). "JET Update Amps Garbage Collection". Application Development Trends.
  7. William Wong (23 Jul 2012). "Java Tool Slims Down Embedded Runtime". Electronic Design. Archived from the original on 26 September 2012. Retrieved 12 September 2012.
  8. "The magic of the Internet". Imgur. Retrieved 2022-08-16.
  9. https://www.excelsiorjet.com/ Archived 2019-07-15 at the Wayback Machine on May 16, 2019
  10. "Huawei acquires Russian developer Excelsior - report".
  11. Tom Tromey (2 Oct 2016). "The Deletion of gcj".