Main repo: https://github.com/nativejdb/nativejdb
- Clone each repository to your machine:
Note: nativejdb repository must be cloned at the same parent level as nativejdbExamples for Docker's volume to file system mapping to work.
This repository make targets output the native image executable and debug sources into nativejdb's /apps directory.
git clone [email protected]:nativejdb/nativejdb.git (IF NOT CLONED ALREADY)
git clone [email protected]:nativejdb/nativejdbExamples.git
cd nativejdbExamplesTo generate a native executable within the Linux environment in the Docker container, you will need to download graalvm binary from https://github.com/graalvm/graalvm-ce-builds/releases and untar graalvm-ce-java11-linux-amd64-*.tar.gz into the same NativeJDB directory.
make graalvm
2. Run the following command via a terminal to generate native image executable and debug sources for your application (generation takes a few mins):
- Start Docker Desktop
For non-Quarkus applications, pass the classname (like Hello) as input arg to make target (ISQUARKUS arg is defaulted to false):
make nativeimage CLASSNAME=Hello
For Quarkus applications, pass the jarname (like getting-started-1.0.0-SNAPSHOT-runner) as input to CLASSNAME arg, along with setting ISQUARKUS arg to true:
Note: The jar is built and packaged from the corresponding Quarkus project by running ./mvnw package -Dnative.
This produces a jar in target/*-1.0.0-SNAPSHOT-native-image-source-jar/*-1.0.0-SNAPSHOT-runner.jar along with a lib/ directory.
You will need to move the *-1.0.0-SNAPSHOT-runner.jar and lib/ to nativejdb/apps/ before running the following command:
make nativeimage CLASSNAME=getting-started-1.0.0-SNAPSHOT-runner ISQUARKUS=true
Reminder: Running make nativeimage outputs the native image executable and debug sources into nativejdb's /apps directory which will be used by the debugger in the next setup.
Run the following command via a terminal to ssh into docker container:
make exec
Run the following command via a terminal to stop and remove existing docker container:
make stop
Now, we will switch projects or directories to follow instructions for compiling and running NativeJDB Debugger on Docker.
This will start a nativejdb running Docker container.
Set breakpoints in the source code file for your example application in this project (for example: src/Hello/Hello.java
On IntelliJ, back from nativeJDBExamples open project: Run ---> Remote JVM Debug --> Hello