Excelsior JET

Last updated
Excelsior JET
Developer(s) Excelsior LLC
Initial release2000;24 years ago (2000)
Final release
15.3 / November 22, 2018;5 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. Although its syntax is similar to that of C and C++, the Java language 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> Virtual machine that runs Java programs

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.

A computing platform, digital platform, or software platform is the infrastructure on which software is executed. While the individual components of a computing platform may be obfuscated under layers of abstraction, the summation of the required components comprise the computing platform.

<span class="mw-page-title-main">64-bit computing</span> Computer architecture bit width

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.

A web container is the component of a web server that interacts with Jakarta Servlets. A web container is responsible for managing the lifecycle of servlets, mapping a URL to a particular servlet and ensuring that the URL requester has the correct access-rights. A web container handles requests to servlets, Jakarta Server Pages (JSP) files, and other types of files that include server-side code. The Web container creates servlet instances, loads and unloads servlets, creates and manages request and response objects, and performs other servlet-management tasks. A web container implements the web component contract of the Jakarta EE architecture. This architecture specifies a runtime environment for additional web components, including security, concurrency, lifecycle management, transaction, deployment, and other services.

<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 third-generation typed languages such as C and C++. In contrast to those languages, Java compiles by default to a Java Virtual Machine (JVM) with operations distinct from those of the actual computer hardware. Early JVM implementations were interpreters; they simulated the virtual operations one-by-one rather than translating them into machine code for direct hardware execution.

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. Azul Systems, founded in March 2002, Azul Systems has headquarters 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 Java virtual machine, a compiler, performance monitoring tools, a debugger, and other utilities that Oracle considers useful for Java programmers.

<span class="mw-page-title-main">GraalVM</span> Virtual machine software

GraalVM is a Java Development Kit (JDK) written in Java. The open-source distribution of GraalVM is based on OpenJDK, and the enterprise distribution is based on Oracle JDK. As well as just-in-time (JIT) compilation, GraalVM can compile a Java application ahead of time. This allows for faster initialization, greater runtime performance, and decreased resource consumption, but the resulting executable can only run on the platform it was compiled for.

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. Archived from the original on December 2, 2010. 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".