Skip to content

[macOS] NoSQL Workbench DynamoDB Local unable to start via GUI on/off switch because it cannot find an SDKMAN-managed JDK

-1

I am trying to use NoSQL Workbench GUI on macOS to manage the DynamoDB Local (DDB local) service. Initial guess is that NoSQL Workbench is not able to pick up the active JDK via JAVA_HOME env property.

Attempting to turn on DDB local via the GUI yields these error messages:

GUI

Java Runtime Environment (JRE) version 11.x or newer is required for running DynamoDB local.

dynamoDB-local.log

{
  message: 'Found DynamoDB local jar file at path: /Applications/NoSQL Workbench.app/Contents/Resources/resources/dynamodb_local',
  level: 'info',
  timestamp: '2025-02-11T02:29:54.211Z'
}
{
  message: 'The operation couldn’t be completed. Unable to locate a Java Runtime.\n' +
    'Please visit http://www.java.com for information on installing Java.\n' +
    '\n',
  level: 'error',
  timestamp: '2025-02-11T02:32:58.752Z'
}

Starting DDB Local via the jar file outside of NoSQL Workbench works fine, but the desire is to be able to have the NoSQL Workbench GUI able to toggle DDB Local on/off via the GUI. The JDK has been installed via SDKMAN and is configured as the default JDK. Other java tooling is able to see/use the JDK installed via SDKMAN without issue.

Here is my development environment:

  • macOS 15.3 - arm64
  • NoSQL Workbench 3.13.4
  • DDB Local 2.5.3
  • Mandrel JDK 21.0.4
  • JAVA_HOME=/Users/whoami/.sdkman/candidates/java/current
  • ~/.sdkman/candidates/java directory has proper symlink to Mandrel JDK 21: current -> 23.1.4.r21-mandrel
  • /Library/Java/JavaVirtualMachines/jdk symlink -> `/Users/whoami/.sdkman/candidates/java/23.1.4.r21-mandrel
asked 9 months ago835 views
4 Answers
0
Accepted Answer

Resolved by installing Mandrel JDK 21 for macOS manually outside of SDKMAN. The version of Mandrel that SDKMAN is installing appears to be different than the macOS tarball version from the mandrel GitHub releases page. The SDKMAN installed version is missing the macOS specific things like Contents/Info.plist, MacOS, and _CodeSignature directories.

What a hassle but at least DynamoDB Local is able to start via the GUI with a manually installed Mandrel JDK 21. If I can get around to it, I will open a bug on the SDKMAN repo because I'd expect their installer to handle this config.

Steps to fix by manually setting up Mandrel JDK 21:

  1. Find the desired version of Mandrel JDK from the GitHub releases page: https://github.com/graalvm/mandrel/releases
  2. Copy the download link to your clipboard for the version you want to install. Ensure you're downloading the correct tarball for your system (the one with "-macos-aarch64-*").
  3. Use curl -OL <GitHub Download Link> to download the tarball to avoid the Apple Quarantine extended attribute from being placed on the JDK contents. Expand the tarball with "tar xf <filename>".
  4. Move the JDK somewhere on your PATH. Example ~/bin -> "mv mandrel-java21-23.1.6.0.Final ~/bin". Update environment args to pick up the JDK install
 export JAVA_HOME="/Users/user/bin/mandrel-java-21-23.1.6.0.Final/Contents/Home"
 export PATH=$PATH:"$JAVA_HOME/bin"
  1. Update the system link in /Library/Java to point to where the mandrel JDK is placed. Confirm via "java -version" that the JDK is being properly registered. If you downloaded the tarball via a browser, then quarantine xattr will block execution (pain to manually remove, so use curl to download to prevent this).
/Library/Java/JavaVirtualMachines/jdk   ->   /Users/user/bin/mandrel-java-21-23.1.6.0.Final
  1. Quit and re-launch NoSQL Workbench and DDB Local should start up just fine with the Mandrel JDK 21 no fuss
answered 9 months ago
AWS
EXPERT
reviewed 8 months ago
0

answered 8 months ago
0

The above answer seems to be AI barf. Setting up shell variables for a gui app and deeplinking to whatever - if you're like me and you just want the app to work and don't care about what java is installed I suggest using amazon''s java installer here https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html and just click-click go have it working.

answered 3 months ago
-1

The issue you're experiencing is likely due to NoSQL Workbench not being able to locate the Java Runtime Environment (JRE) installed via SDKMAN. NoSQL Workbench requires JRE version 11.x or newer to run DynamoDB local, and it seems it's not detecting your Mandrel JDK 21 installation.

To resolve this, you can try the following steps:

  1. Ensure that your JAVA_HOME environment variable is correctly set and visible to all applications, not just terminal sessions. You can do this by adding it to your ~/.bash_profile or ~/.zshrc file (depending on your shell):

    export JAVA_HOME=/Users/whoami/.sdkman/candidates/java/current

  2. Make sure the PATH environment variable includes the bin directory of your JDK:

    export PATH=$JAVA_HOME/bin:$PATH

  3. After making these changes, restart your terminal and NoSQL Workbench to ensure the new environment variables are loaded.

  4. If the issue persists, you may need to create a symbolic link to your JDK in a location that NoSQL Workbench checks by default. Try creating a symlink in /Library/Java/JavaVirtualMachines/:

    sudo ln -s /Users/whoami/.sdkman/candidates/java/current /Library/Java/JavaVirtualMachines/sdkman-jdk

  5. If none of the above steps work, you might need to install a separate JDK using a method that NoSQL Workbench recognizes more easily, such as using the official Oracle JDK installer or using Homebrew.

Remember that NoSQL Workbench includes DynamoDB local as an optional part of the installation process, so ensuring it can find a compatible JRE is crucial for the GUI toggle to work properly.

If you continue to face issues after trying these steps, you may want to consider reaching out to AWS support for further assistance, as there might be a specific issue with how NoSQL Workbench is searching for the JRE on your system.
Sources
Download NoSQL Workbench for DynamoDB - Amazon DynamoDB
NoSQL Workbench for DynamoDB - Amazon DynamoDB
Accessing DynamoDB - Amazon DynamoDB

answered 9 months ago
  • Hello AI agent - steps 1 through 4 were tried and no success was had. I'd prefer to use SDKMAN installed JDKs to prevent needing to install directly into /Library/Java/JavaVirtualMachines.

    Hopefully this is a minor config issue that could be corrected on a new version and/or via a configuration property in preferences.json.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.