#include #include #include typedef int (JNICALL *LaunchFuncType)(int argc, char ** argv, int jargc, const char** jargv, int appclassc, const char** appclassv, const char* fullversion, const char* dotversion, const char* pname, const char* lname, jboolean javaargs, jboolean cpwildcard, jboolean javaw, jint ergo); int main() { #define JVM_PATH "badass-runtime-example-javafx-master/hellofx/lib/runtime/lib/libjli.so" #define CLASSPATH "badass-runtime-example-javafx-master/input/hellofx.jar" #define MAINCLASS "org.example.hellofx.Launcher" void *h = dlopen(JVM_PATH, RTLD_LAZY); printf("dlopen(): %p\n", h); char* argv[] = { "launcher", "-cp", CLASSPATH, MAINCLASS, 0 }; LaunchFuncType func = (LaunchFuncType)dlsym(h, "JLI_Launch"); printf("dlsym(): %p\n", func); int exitStatus = func(sizeof(argv) / sizeof(argv[0]) - 1, argv, 0, 0, 0, 0, "", "", "java", "java", JNI_FALSE, JNI_FALSE, JNI_FALSE, 0); return exitStatus; }