public Project build() throws IOException {
		List<String> optionList = new ArrayList<>();
		Project project = ctx.getProject();
		optionList.add(resolveInGraalVMHome("native-image", project.projectJdk()));

		optionList.add("-H:+ReportExceptionStackTraces");
		optionList.add("--enable-https");
		optionList.addAll(project.getMainSourceSet().getNativeOptions());

		String classpath = ctx.resolveClassPath().getClassPath();
		if (!Util.isBlankString(classpath)) {
			optionList.add("--class-path=" + classpath);
		}

		optionList.add("-jar");
		optionList.add(ctx.getJarFile().toString());

		optionList.add(getNativeImageOutputName().toString());

		runNativeBuilder(optionList);

		return project;
	}
This class takes a <code>Project</code> and the result from a previous
packaging (ie "jar") step and tries to run the native image compiler to turn
it into a native application.
src/main/java/dev/jbang/source/buildsteps/NativeBuildStep.java