Example #1
0
STATIC mp_obj_t mod_jni_cls(mp_obj_t cls_name_in) {
    const char *cls_name = mp_obj_str_get_str(cls_name_in);
    if (!env) {
        create_jvm();
    }
    jclass cls = JJ(FindClass, cls_name);

    mp_obj_jclass_t *o = m_new_obj(mp_obj_jclass_t);
    o->base.type = &jclass_type;
    o->cls = cls;
    return o;
}
Example #2
0
int main()
{
  JavaVM* jvm;
  JNIEnv* env;

  create_jvm(&jvm, &env);

  jclass string_class = env->FindClass("java/lang/String");
  if (nullptr == string_class) {
    std::cerr << "could not find String class" << std::endl;
    exit(EXIT_FAILURE);
  }
}
Example #3
0
int main(int argc, char *argv[])
{
  parse_args(argc, argv);
#ifdef CAPS_SUPPORT
  set_user();
  set_caps();
#endif
  create_thread();
  create_jvm();
  install_sighandler();
  run();
  return 0;
}
Example #4
0
STATIC mp_obj_t mod_jni_array(mp_obj_t type_in, mp_obj_t size_in) {
    if (!env) {
        create_jvm();
    }
    mp_int_t size = mp_obj_get_int(size_in);
    jobject res = NULL;

    if (MP_OBJ_IS_TYPE(type_in, &jclass_type)) {

        mp_obj_jclass_t *jcls = type_in;
        res = JJ(NewObjectArray, size, jcls->cls, NULL);

    } else if (MP_OBJ_IS_STR(type_in)) {
        const char *type = mp_obj_str_get_str(type_in);
        switch (*type) {
        case 'Z':
            res = JJ(NewBooleanArray, size);
            break;
        case 'B':
            res = JJ(NewByteArray, size);
            break;
        case 'C':
            res = JJ(NewCharArray, size);
            break;
        case 'S':
            res = JJ(NewShortArray, size);
            break;
        case 'I':
            res = JJ(NewIntArray, size);
            break;
        case 'J':
            res = JJ(NewLongArray, size);
            break;
        case 'F':
            res = JJ(NewFloatArray, size);
            break;
        case 'D':
            res = JJ(NewDoubleArray, size);
            break;
        }

    }

    return new_jobject(res);
}