Installation

Dependency - Desktop

The Javet dependency design for the desktop consists of the following:

  • A core library that contains the Java code.

  • Various libraries each of which contains a native binary for various OS / JS Runtime Type / i18n Type.

With this design, only the libraries needed are loaded.

Maven

The following dependency must be added.

<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet</artifactId>
    <version>4.1.0</version>
</dependency>

The following dependencies contain the non-i18n binaries for various OS / JS Runtime Type.

<!-- Linux (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-node-linux-x86_64</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Linux (arm64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-node-linux-arm64</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Mac OS (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-node-macos-x86_64</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Mac OS (arm64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-node-macos-arm64</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Windows (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-node-windows-x86_64</artifactId>
    <version>4.1.0</version>
</dependency>
<!-- Linux (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-v8-linux-x86_64</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Linux (arm64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-v8-linux-arm64</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Mac OS (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-v8-macos-x86_64</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Mac OS (arm64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-v8-macos-arm64</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Windows (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-v8-windows-x86_64</artifactId>
    <version>4.1.0</version>
</dependency>
<properties>
  <javet.version>4.1.0</javet.version>
</properties>

<profiles>
  <profile>
    <id>windows</id>
    <activation>
      <os>
        <family>windows</family>
        <arch>x86</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-windows-x86_64</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>linux</id>
    <activation>
      <os>
        <family>unix</family>
        <arch>x86</arch>
      </os>
      <activeByDefault>true</activeByDefault>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-linux-x86_64</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>linux-arm64</id>
    <activation>
      <os>
        <family>unix</family>
        <arch>arm64</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-linux-arm64</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>macos</id>
    <activation>
      <os>
        <family>mac</family>
        <arch>x86</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-macos-x86_64</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>macos-arm64</id>
    <activation>
      <os>
        <family>mac</family>
        <arch>arm64</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-macos-arm64</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
</profiles>
<properties>
  <javet.version>4.1.0</javet.version>
</properties>

<profiles>
  <profile>
    <id>windows</id>
    <activation>
      <os>
        <family>windows</family>
        <arch>x86</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-windows-x86_64</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>linux</id>
    <activation>
      <os>
        <family>unix</family>
        <arch>x86</arch>
      </os>
      <activeByDefault>true</activeByDefault>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-linux-x86_64</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>linux-arm64</id>
    <activation>
      <os>
        <family>unix</family>
        <arch>arm64</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-linux-arm64</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>macos</id>
    <activation>
      <os>
        <family>mac</family>
        <arch>x86</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-macos-x86_64</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>macos-arm64</id>
    <activation>
      <os>
        <family>mac</family>
        <arch>arm64</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-macos-arm64</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
</profiles>

The following dependencies contain the i18n binaries for various OS / JS Runtime Type.

<!-- Linux (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-node-linux-x86_64-i18n</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Linux (arm64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-node-linux-arm64-i18n</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Mac OS (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-node-macos-x86_64-i18n</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Mac OS (arm64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-node-macos-arm64-i18n</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Windows (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-node-windows-x86_64-i18n</artifactId>
    <version>4.1.0</version>
</dependency>
<!-- Linux (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-v8-linux-x86_64-i18n</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Linux (arm64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-v8-linux-arm64-i18n</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Mac OS (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-v8-macos-x86_64-i18n</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Mac OS (arm64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-v8-macos-arm64-i18n</artifactId>
    <version>4.1.0</version>
</dependency>

<!-- Windows (x86_64) -->
<dependency>
    <groupId>com.caoccao.javet</groupId>
    <artifactId>javet-v8-windows-x86_64-i18n</artifactId>
    <version>4.1.0</version>
</dependency>
<properties>
  <javet.version>4.1.0</javet.version>
</properties>

<profiles>
  <profile>
    <id>windows</id>
    <activation>
      <os>
        <family>windows</family>
        <arch>x86</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-windows-x86_64-i18n</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>linux</id>
    <activation>
      <os>
        <family>unix</family>
        <arch>x86</arch>
      </os>
      <activeByDefault>true</activeByDefault>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-linux-x86_64-i18n</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>linux-arm64</id>
    <activation>
      <os>
        <family>unix</family>
        <arch>arm64</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-linux-arm64-i18n</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>macos</id>
    <activation>
      <os>
        <family>mac</family>
        <arch>x86</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-macos-x86_64-i18n</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>macos-arm64</id>
    <activation>
      <os>
        <family>mac</family>
        <arch>arm64</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-node-macos-arm64-i18n</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
</profiles>
<properties>
  <javet.version>4.1.0</javet.version>
</properties>

<profiles>
  <profile>
    <id>windows</id>
    <activation>
      <os>
        <family>windows</family>
        <arch>x86</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-windows-x86_64-i18n</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>linux</id>
    <activation>
      <os>
        <family>unix</family>
        <arch>x86</arch>
      </os>
      <activeByDefault>true</activeByDefault>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-linux-x86_64-i18n</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>linux-arm64</id>
    <activation>
      <os>
        <family>unix</family>
        <arch>arm64</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-linux-arm64-i18n</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>macos</id>
    <activation>
      <os>
        <family>mac</family>
        <arch>x86</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-macos-x86_64-i18n</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
  <profile>
    <id>macos-arm64</id>
    <activation>
      <os>
        <family>mac</family>
        <arch>arm64</arch>
      </os>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.caoccao.javet</groupId>
        <artifactId>javet-v8-macos-arm64-i18n</artifactId>
        <version>${javet.version}</version>
      </dependency>
    </dependencies>
  </profile>
</profiles>

Gradle Kotlin DSL - Desktop

implementation("com.caoccao.javet:javet:4.1.0") // Must-have
implementation("com.caoccao.javet:javet-node-linux-arm64:4.1.0")
implementation("com.caoccao.javet:javet-node-linux-arm64-i18n:4.1.0")
implementation("com.caoccao.javet:javet-node-linux-x86_64:4.1.0")
implementation("com.caoccao.javet:javet-node-linux-x86_64-i18n:4.1.0")
implementation("com.caoccao.javet:javet-node-macos-arm64:4.1.0")
implementation("com.caoccao.javet:javet-node-macos-arm64-i18n:4.1.0")
implementation("com.caoccao.javet:javet-node-macos-x86_64:4.1.0")
implementation("com.caoccao.javet:javet-node-macos-x86_64-i18n:4.1.0")
implementation("com.caoccao.javet:javet-node-windows-x86_64:4.1.0")
implementation("com.caoccao.javet:javet-node-windows-x86_64-i18n:4.1.0")
implementation("com.caoccao.javet:javet-v8-linux-arm64:4.1.0")
implementation("com.caoccao.javet:javet-v8-linux-arm64-i18n:4.1.0")
implementation("com.caoccao.javet:javet-v8-linux-x86_64:4.1.0")
implementation("com.caoccao.javet:javet-v8-linux-x86_64-i18n:4.1.0")
implementation("com.caoccao.javet:javet-v8-macos-arm64:4.1.0")
implementation("com.caoccao.javet:javet-v8-macos-arm64-i18n:4.1.0")
implementation("com.caoccao.javet:javet-v8-macos-x86_64:4.1.0")
implementation("com.caoccao.javet:javet-v8-macos-x86_64-i18n:4.1.0")
implementation("com.caoccao.javet:javet-v8-windows-x86_64:4.1.0")
implementation("com.caoccao.javet:javet-v8-windows-x86_64-i18n:4.1.0")
import org.gradle.internal.os.OperatingSystem

val os = OperatingSystem.current()
val arch = System.getProperty("os.arch")
val isI18n = false
val isNode = false
val i18nType = if (isI18n) "-i18n" else ""
val jsRuntimeTimeType = if (isNode) "node" else "v8"
val osType = if (os.isWindows) "windows" else
    if (os.isMacOsX) "macos" else
    if (os.isLinux) "linux" else ""
val archType = if (arch == "aarch64" || arch == "arm64") "arm64" else "x86_64"
implementation("com.caoccao.javet:javet:4.1.0")
implementation("com.caoccao.javet:javet-$jsRuntimeTimeType-$osType-$archType$i18nType:4.0.0")

Gradle Groovy DSL - Desktop

implementation 'com.caoccao.javet:javet:4.1.0' // Must-have
implementation 'com.caoccao.javet:javet-node-linux-arm64:4.1.0'
implementation 'com.caoccao.javet:javet-node-linux-arm64-i18n:4.1.0'
implementation 'com.caoccao.javet:javet-node-linux-x86_64:4.1.0'
implementation 'com.caoccao.javet:javet-node-linux-x86_64-i18n:4.1.0'
implementation 'com.caoccao.javet:javet-node-macos-arm64:4.1.0'
implementation 'com.caoccao.javet:javet-node-macos-arm64-i18n:4.1.0'
implementation 'com.caoccao.javet:javet-node-macos-x86_64:4.1.0'
implementation 'com.caoccao.javet:javet-node-macos-x86_64-i18n:4.1.0'
implementation 'com.caoccao.javet:javet-node-windows-x86_64:4.1.0'
implementation 'com.caoccao.javet:javet-node-windows-x86_64-i18n:4.1.0'
implementation 'com.caoccao.javet:javet-v8-linux-arm64:4.1.0'
implementation 'com.caoccao.javet:javet-v8-linux-arm64-i18n:4.1.0'
implementation 'com.caoccao.javet:javet-v8-linux-x86_64:4.1.0'
implementation 'com.caoccao.javet:javet-v8-linux-x86_64-i18n:4.1.0'
implementation 'com.caoccao.javet:javet-v8-macos-arm64:4.1.0'
implementation 'com.caoccao.javet:javet-v8-macos-arm64-i18n:4.1.0'
implementation 'com.caoccao.javet:javet-v8-macos-x86_64:4.1.0'
implementation 'com.caoccao.javet:javet-v8-macos-x86_64-i18n:4.1.0'
implementation 'com.caoccao.javet:javet-v8-windows-x86_64:4.1.0'
implementation 'com.caoccao.javet:javet-v8-windows-x86_64-i18n:4.1.0'

Dependencies - Android

Gradle Kotlin DSL - Android

implementation("com.caoccao.javet:javet-node-android:4.1.0") // Android Node (arm, arm64, x86 and x86_64)
implementation("com.caoccao.javet:javet-node-android-i18n:4.1.0") // Android Node (arm64 and x86_64)
implementation("com.caoccao.javet:javet-v8-android:4.1.0") // Android V8 (arm, arm64, x86 and x86_64)
implementation("com.caoccao.javet:javet-v8-android-i18n:4.1.0") // Android V8 (arm, arm64, x86 and x86_64)

Gradle Groovy DSL - Android

implementation 'com.caoccao.javet:javet-node-android:4.1.0' // Android Node (arm, arm64, x86 and x86_64)
implementation 'com.caoccao.javet:javet-node-android-i18n:4.1.0' // Android Node (arm64 and x86_64)
implementation 'com.caoccao.javet:javet-v8-android:4.1.0' // Android V8 (arm, arm64, x86 and x86_64)
implementation 'com.caoccao.javet:javet-v8-android-i18n:4.1.0' // Android V8 (arm, arm64, x86 and x86_64)

OS Compatibility

Windows

OS

Compatible

Windows 11

Yes

Windows 10

Yes

Windows 7

Yes

Windows Server

Not Tested

Linux

OS

Compatible

Ubuntu 24.04

Yes

Ubuntu 22.04

Yes

Ubuntu 20.04

Yes

Ubuntu 18.04

Yes (since v1.1.0 and private builds)

Ubuntu 16.04

Yes (since v1.1.0 and private builds)

Cent OS 8

Yes (since v1.1.0 and private builds)

Cent OS 7

Yes (since v1.1.0 and private builds)

Other Linux Distributions

Not Tested

Caution

  • Private builds imply considerable additional effort, so there is no commitments. Please contact the maintainer for private builds wisely.

glibc Version

Javet Version

2.29

v3.0.3+

2.34

v3.0.1 - v3.0.2

2.29

v0.8.6 - v3.0.0

2.25

v0.8.0 - v0.8.5

2.14

v0.7.0 - v0.7.4

Mac OS

OS

Compatible

Mac OS x86_64

Yes

Mac OS arm64

Yes

Caution

  • The lowest supported version is Catalina.

Android

Android arm, arm64, x86, x86_64 are supported.

ABI

Javet Version

V8 Version

21+

v1.0.3 - v1.0.7

v9.5 - v9.6

23+

v1.1.0 - v2.1.1

v9.7 - v11.2

24+

v2.1.2+

v11.3+

Internationalization (i18n)

If i18n is enabled, please make sure the steps in Internationalization (i18n) are well implemented otherwise Javet will crash.