Beispiel #1
0
int main(int argc, char* argv[]) {
    options.mainClass = (char*) _bcMainClass;
    options.rawBootclasspath = _bcBootclasspath;
    options.rawClasspath = _bcClasspath;
    options.loadBootClass = loadBootClass;
    options.loadUserClass = loadUserClass;
    options.classInitialized = classInitialized;
    options.loadInterfaces = loadInterfaces;
    options.loadFields = loadFields;
    options.loadMethods = loadMethods;
    options.findClassAt = findClassAt;
    options.exceptionMatch = exceptionMatch;
    options.dynamicJNI = _bcDynamicJNI;
    options.staticLibs = _bcStaticLibs;
    options.runtimeData = &_bcRuntimeData;
    options.listBootClasses = listBootClasses;
    options.listUserClasses = listUserClasses;
    if (!rvmInitOptions(argc, argv, &options, FALSE)) {
        fprintf(stderr, "rvmInitOptions(...) failed!\n");
        return 1;
    }
    Env* env = rvmStartup(&options);
    if (!env) {
        fprintf(stderr, "rvmStartup(...) failed!\n");
        return 1;
    }
    vm = env->vm;
    jint result = rvmRun(env) ? 0 : 1;
    rvmShutdown(env, result);
    return result;
}
Beispiel #2
0
Datei: bc.c Projekt: Zubnix/aura
static int bcmain(int argc, char* argv[]) {
    initOptions();
    if (!rvmInitOptions(argc, argv, &options, FALSE)) {
        fprintf(stderr, "rvmInitOptions(...) failed!\n");
        return 1;
    }
    Env* env = rvmStartup(&options);
    if (!env) {
        fprintf(stderr, "rvmStartup(...) failed!\n");
        return 1;
    }
    vm = env->vm;
    jint result = rvmRun(env) ? 0 : 1;
    rvmShutdown(env, result);
    return result;
}
Beispiel #3
0
Datei: bc.c Projekt: Zubnix/aura
jint JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* pvm_args) {
    initOptions();

    JavaVMInitArgs* vmArgs = (JavaVMInitArgs*) pvm_args;
    if (vmArgs) {
        for (int i = 0; i < vmArgs->nOptions; i++) {
            JavaVMOption* opt = &vmArgs->options[i];
            if (startsWith(opt->optionString, "-rvm:")) {
                char* arg = &opt->optionString[5];
                rvmParseOption(arg, &options);
            } else if (startsWith(opt->optionString, "-X")) {
                char* arg = &opt->optionString[2];
                rvmParseOption(arg, &options);
            } else if (startsWith(opt->optionString, "-D")) {
                char* arg = &opt->optionString[1];
                rvmParseOption(arg, &options);
            } else if (startsWith(opt->optionString, "-verbose")) {
                rvmParseOption("log=trace", &options);
            }
        }
    }

    if (!rvmInitOptions(0, NULL, &options, FALSE)) {
        return JNI_ERR;
    }

    // Start up robovm (JNI)
    Env* env = rvmStartup(&options);
    if (!env) {
        return JNI_ERR;
    }

    vm = env->vm;

    // Return values.
    if (p_vm) {
        *p_vm = &vm->javaVM;
    }
    if (p_env) {
        *p_env = &env->jni;
    }

    return JNI_OK;
}