I want to use JDK 25 in my snapcraft project

Hello guys,

I want to use JDK 25, the latest LTS version, for one of my projects. My project uses core24. Previously I used JDK 21 to build it.

The first attempt on my local:

  • using core24
name: noc-convert
version: '2.0.94'
summary: Fast, no-cloud bulk image converter.
description: |
  Bulk Image Converter (NoCloud). The easy way to batch convert all your images.
base: core24
#build-base: devel
#grade: devel
confinement: strict
icon: snap/gui/icon.png
title: NoCloud Bulk Image Converter
website: https://andre-i.eu
issues: https://github.com/goto-eof
source-code: https://github.com/goto-eof/noc-convert
donation: https://github.com/sponsors/goto-eof
contact: https://andre-i.eu/#contactme
compression: lzo
license: CC-BY-NC-4.0
apps:
  noc-convert:
    environment:
    extensions: [ gnome ]
    command: executor
    plugs:
      - browser-support
      - home
      - unity7
      - wayland
      - x11
      - desktop
      - desktop-legacy
platforms:
  amd64:
    build-on: [ amd64 ]
    build-for: [ amd64 ]
  arm64:
    build-on: [ arm64 ]
    build-for: [ arm64 ]
parts:
  wrapper:
    plugin: dump
    source: snap/local
    source-type: local
  application:
    plugin: maven
    source: .
    build-packages:
      - openjdk-25-jdk
      - maven
    stage-packages:
      - openjdk-25-jre
      - xdg-utils

In this case I am obtaining an error that informs me that the package JDK25 does not exist.

Cannot find package listed in 'build-packages': openjdk-25-jdk

While on snapcraft.io the build fails because:

package contains external symlinks: 
usr/lib/jvm/java-25-openjdk-amd64/conf/jaxp-strict.properties.template -> /etc/java-25-openjdk/jaxp-strict.properties.template, 
usr/lib/jvm/java-25-openjdk-amd64/conf/security/java.policy -> /etc/java-25-openjdk/security/java.policy, 
usr/lib/jvm/java-25-openjdk-amd64/lib/security/default.policy -> /etc/java-25-openjdk/security/default.policy lint-snap-v2_external_symlinks

The second attempt on my local:

  • using core26
name: noc-convert
version: '2.0.94'
summary: Fast, no-cloud bulk image converter.
description: |
  Bulk Image Converter (NoCloud). The easy way to batch convert all your images.
base: core26
build-base: devel
grade: devel
confinement: strict
icon: snap/gui/icon.png
title: NoCloud Bulk Image Converter
website: https://andre-i.eu
issues: https://github.com/goto-eof
source-code: https://github.com/goto-eof/noc-convert
donation: https://github.com/sponsors/goto-eof
contact: https://andre-i.eu/#contactme
compression: lzo
license: CC-BY-NC-4.0
apps:
  noc-convert:
    environment:
    # extensions: [ gnome ]
    command: executor
    plugs:
      - browser-support
      - home
      - unity7
      - wayland
      - x11
      - desktop
      - desktop-legacy
platforms:
  amd64:
    build-on: [ amd64 ]
    build-for: [ amd64 ]
  arm64:
    build-on: [ arm64 ]
    build-for: [ arm64 ]
parts:
  wrapper:
    plugin: dump
    source: snap/local
    source-type: local
  application:
    plugin: maven
    source: .
    build-packages:
      - openjdk-25-jdk
      - maven
    stage-packages:
      - openjdk-25-jre
      - xdg-utils

In this case I see an error:

error: cannot perform the following tasks:
- Ensure prerequisites for "noc-convert" are available (cannot install snap base "core26": no snap revision available as specified)

after executing:

 sudo snap install noc-convert_*_amd64.snap --devmode

So I installed core26 snap.

Now it works, but I have a doubt: is it allowed to distribute a software with the latest core version? I mean, which are the risks?

Later I will try to make a build on snapcraft.io (using core26).

Thank you,

Andrei

Update 08 Nov. 2025

I succeeded to build my sofwtare with core26 on snapcraft.io, but after installing my application from the App Center and trying to run the application, nothing happened. Seems that the issue here is that it is necessary to install the core26 snap. Infact after installing core26 snap, I succeeded to run the software. So at the end I switched back to JDK 21 and core24.

Hi @AndreiDodu , core26 is the base snap based on the Ubuntu 26.04 release, which is still 6 months away. So I wouldn’t recommend using it just yet.

The latest OpenJDK in an Ubuntu LTS release is 21, as shown in https://documentation.ubuntu.com/ubuntu-for-developers/reference/availability/java/, so at the moment there is no straightforward way to use OpenJDK 25 for building snaps.

Thank you @astrojuanlu

1 Like