Esempio n. 1
0
int main(int argc, char **argv)
{
  try {
    JvCreateJavaVM(NULL);

    JvAttachCurrentThread(NULL, NULL);

    java::lang::String *message = JvNewStringLatin1("hello cni");
    JvInitClass(&java::lang::String::class$);
    java::lang::System::out->println(message);

    JvInitClass(&TestClass::class$);
    TestClass *to = new TestClass();
    int v = to->foo(100);
    std::cout << "v = " << v << std::endl;
    int x = 0;
    for (int i = 0; i < 10000000; ++i) {
      x = to->bar();
    }
    std::cout << "x = " << x << std::endl;

    JvDetachCurrentThread();

  } catch (java::lang::Throwable *t) {
    java::lang::System::err->println(JvNewStringLatin1(
      "unhandled java exception"));
    t->printStackTrace();
  }
  return 0;
}
java::lang::Object *toJava(const QoreString &str, ExceptionSink *xsink) {
   if (str.getEncoding() == QCS_UTF8)
      return JvNewStringUTF(str.getBuffer());
   
   if (str.getEncoding() == QCS_ISO_8859_1)
      return JvNewStringLatin1(str.getBuffer());

   TempEncodingHelper ustr(str, QCS_UTF8, xsink);
   if (!ustr)
      return 0;

   return JvNewStringUTF(ustr->getBuffer());
}
java::lang::Object *toJava(const char *str) {
   return JvNewStringLatin1(str);
}