wissel.net

Usability - Productivity - Business - The web - Singapore & Twins

VSCode launch settings for DominoJNX and HCL Notes 14.5


I'm not the only one who doesn't like Windows, which is a problem when you depend on Domino Designer. Luckily there is Java and DominoJNX. A decade ago I would use Eclipse on an Intel Mac (and Java8). Much has changed. Java is now 21, the Mac is based on Arm and my primary IDE is VSCode. Here is my setup.

x86 vs. arm

To run a Java app against the Notes 14.5 client there are several steps required:

  • An installed and running Notes 14.5 client (duh)
  • MacOS Rosetta installed
  • a 64Bit x86 JDK (won't work with an ARM JDK)
  • A launch.json file in .vscode of your project

Installing Rosetta

 softwareupdate --install-rosetta

Installing an x86 JDK

I use sdkman to install and switch between Java versions. However any attempt to install an x86 JDK using the sdk command line failed, so I resorted to a manual download:

# Create directory
mkdir -p ~/.sdkman/candidates/java/21-tem-x64/Contents/Home

# Download and extract
mkdir -p ~/temp
cd -/temp
curl -LO https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.5%2B11/OpenJDK21U-jdk_x64_mac_hotspot_21.0.5_11.tar.gz
tar -xzf OpenJDK21U-jdk_x64_mac_hotspot_21.0.5_11.tar.gz
mv jdk-21.0.5+11/* ~/.sdkman/candidates/java/21-tem-x64/

# Verify it's x86_64
file ~/.sdkman/candidates/java/21-tem-x64/Contents/Home/bin/java

the Launch.json file

It comes with little annoyances, the javaExec value would not recognize ~ or ${env:HOME}, so when you share the project you might need to resort to a symbolic link, so your user directory doesn't show up in the setting

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "java",
      "name": "Launch Main",
      "request": "launch",
      "mainClass": "your.package.Main",
      "env": {
        "DYLD_LIBRARY_PATH": "/Applications/HCL Notes.app/Contents/MacOS",
        "Notes_ExecDirectory": "/Applications/HCL Notes.app/Contents/MacOS",
        "NOTESBIN": "/Applications/HCL Notes.app/Contents/MacOS",
        "NotesINI": "${env:HOME}/Library/Preferences/Notes Preferences"
      },
      "vmArgs": [
        "-Djava.library.path=/Applications/HCL Notes.app/Contents/MacOS",
        "-Djna.library.path=/Applications/HCL Notes.app/Contents/MacOS"
      ],
      "javaExec": "/Users/yourname/.sdkman/candidates/java/21-tem-x64/Contents/Home/bin/java",
      "classPaths": [
        "$Auto",
        "/Applications/HCL Notes.app/Contents/Resources/ndext/Notes.jar",
        "/Applications/HCL Notes.app/Contents/Resources/ndext/glassfish-corba-omgapi.jar"
      ]
    }
  ]
}

you need to adjust:

  • mainClass
  • javaExec

As usual YMMV


Posted by on 04 February 2026 | Comments (0) | categories: HCL Notes Java

Comments

  1. No comments yet, be the first to comment