Commit 68e481788976ae619e65962d34428424f75a48da
1 parent
fad6aa49
Exists in
master
and in
5 other branches
Módulo java volta a funcionar em linux
Showing
2 changed files
with
31 additions
and
81 deletions
Show diff stats
src/java/call.cc
| ... | ... | @@ -50,62 +50,6 @@ namespace PW3270_NAMESPACE { |
| 50 | 50 | if(jvm || load_jvm(widget)) { |
| 51 | 51 | |
| 52 | 52 | v3270_set_script(widget,'J',TRUE); |
| 53 | -/* | |
| 54 | - | |
| 55 | - gchar * dirname = g_path_get_dirname(filename); | |
| 56 | - gchar * classname = g_path_get_basename(filename); | |
| 57 | - | |
| 58 | - gchar * ptr = strrchr(classname,'.'); | |
| 59 | - if(ptr) { | |
| 60 | - *ptr = 0; | |
| 61 | - } | |
| 62 | - | |
| 63 | - gchar * classpath; | |
| 64 | - | |
| 65 | -#ifdef _WIN32 | |
| 66 | - | |
| 67 | - char buffer[1024]; | |
| 68 | - gchar * exports; | |
| 69 | - | |
| 70 | - if(GetModuleFileName(NULL,buffer,sizeof(buffer)) < sizeof(buffer)) { | |
| 71 | - | |
| 72 | - gchar * ptr = strrchr(buffer,G_DIR_SEPARATOR); | |
| 73 | - if(ptr) { | |
| 74 | - *ptr = 0; | |
| 75 | - exports = g_build_filename(buffer,"jvm-exports",NULL); | |
| 76 | - } else { | |
| 77 | - exports = g_build_filename(".","jvm-exports",NULL); | |
| 78 | - } | |
| 79 | - | |
| 80 | - | |
| 81 | - } else { | |
| 82 | - | |
| 83 | - exports = g_build_filename(".","jvm-exports",NULL); | |
| 84 | - | |
| 85 | - } | |
| 86 | - | |
| 87 | - debug("myDir=%s",myDir); | |
| 88 | - | |
| 89 | - g_mkdir_with_parents(exports,0777); | |
| 90 | - | |
| 91 | -#ifdef DEBUG | |
| 92 | - classpath = g_strdup_printf("%s;%s;.bin/java",dirname,exports); | |
| 93 | -#else | |
| 94 | - classpath = g_strdup_printf("%s;%s",dirname,exports); | |
| 95 | -#endif | |
| 96 | - | |
| 97 | - g_free(exports); | |
| 98 | -#else | |
| 99 | - | |
| 100 | -#ifdef DEBUG | |
| 101 | - classpath = g_strdup_printf("%s:%s:.bin/java",dirname,JARDIR); | |
| 102 | -#else | |
| 103 | - classpath = g_strdup_printf("%s:%s",dirname,JARDIR); | |
| 104 | -#endif | |
| 105 | - | |
| 106 | -#endif // _WIN32 | |
| 107 | - | |
| 108 | -*/ | |
| 109 | 53 | |
| 110 | 54 | try { |
| 111 | 55 | |
| ... | ... | @@ -158,7 +102,38 @@ namespace PW3270_NAMESPACE { |
| 158 | 102 | env->CallStaticVoidMethod(cls, mid, args); |
| 159 | 103 | |
| 160 | 104 | // Check for exception |
| 105 | + jthrowable exc = env->ExceptionOccurred(); | |
| 106 | + env->ExceptionClear(); | |
| 107 | + | |
| 108 | + if (exc) { | |
| 109 | + jclass throwable_class = env->FindClass("java/lang/Throwable"); | |
| 110 | + | |
| 111 | + jmethodID jni_getMessage = env->GetMethodID(throwable_class,"getMessage","()Ljava/lang/String;"); | |
| 112 | + jstring j_msg = (jstring) env->CallObjectMethod(exc,jni_getMessage); | |
| 113 | + | |
| 114 | + GtkWidget *dialog = gtk_message_dialog_new( GTK_WINDOW(gtk_widget_get_toplevel(widget)), | |
| 115 | + GTK_DIALOG_DESTROY_WITH_PARENT, | |
| 116 | + GTK_MESSAGE_ERROR, | |
| 117 | + GTK_BUTTONS_OK_CANCEL, | |
| 118 | + _( "Java application \"%s\" has failed." ), classname ); | |
| 161 | 119 | |
| 120 | + gtk_window_set_title(GTK_WINDOW(dialog), _( "Java error" )); | |
| 121 | + | |
| 122 | + if(!env->IsSameObject(j_msg,NULL)) { | |
| 123 | + | |
| 124 | + const char * msg = env->GetStringUTFChars(j_msg, 0); | |
| 125 | + | |
| 126 | + gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),"%s",msg); | |
| 127 | + | |
| 128 | + env->ReleaseStringUTFChars( j_msg, msg); | |
| 129 | + } | |
| 130 | + | |
| 131 | + if(gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_CANCEL) | |
| 132 | + gtk_main_quit(); | |
| 133 | + gtk_widget_destroy(dialog); | |
| 134 | + | |
| 135 | + | |
| 136 | + } | |
| 162 | 137 | |
| 163 | 138 | // And finish |
| 164 | 139 | env->DeleteLocalRef(args); | ... | ... |
src/plugins/hllapi/client.h
| ... | ... | @@ -46,31 +46,6 @@ |
| 46 | 46 | extern "C" { |
| 47 | 47 | #endif |
| 48 | 48 | |
| 49 | -/* | |
| 50 | - void * hllapi_pipe_init(const char *id); | |
| 51 | - void hllapi_pipe_deinit(void *h); | |
| 52 | - const char * hllapi_pipe_get_revision(void); | |
| 53 | - void hllapi_pipe_release_memory(void *p); | |
| 54 | - int hllapi_pipe_connect(void *h, const char *n, int wait); | |
| 55 | - void hllapi_pipe_disconnect(void *h); | |
| 56 | - LIB3270_MESSAGE hllapi_pipe_get_message(void *h); | |
| 57 | - char * hllapi_pipe_get_text_at(void *h, int row, int col, int len); | |
| 58 | - char * hllapi_pipe_get_text(void *h, int offset, int len); | |
| 59 | - int hllapi_pipe_enter(void *h); | |
| 60 | - int hllapi_pipe_erase_eof(void *h); | |
| 61 | - int hllapi_pipe_set_text_at(void *h, int row, int col, const unsigned char *str); | |
| 62 | - int hllapi_pipe_cmp_text_at(void *h, int row, int col, const char *text); | |
| 63 | - int hllapi_pipe_pfkey(void *h, int key); | |
| 64 | - int hllapi_pipe_pakey(void *h, int key); | |
| 65 | - int hllapi_pipe_wait_for_ready(void *h, int seconds); | |
| 66 | - int hllapi_pipe_sleep(void *h, int seconds); | |
| 67 | - int hllapi_pipe_is_connected(void *h); | |
| 68 | - int hllapi_pipe_getcursor(void *h); | |
| 69 | - int hllapi_pipe_setcursor(void *h, int baddr); | |
| 70 | - int hllapi_pipe_emulate_input(void *hSession, const char *s, int len, int pasting); | |
| 71 | - int hllapi_pipe_print(void *h); | |
| 72 | -*/ | |
| 73 | - | |
| 74 | 49 | char * hllapi_get_string(int offset, size_t len); |
| 75 | 50 | void hllapi_free(void *p); |
| 76 | 51 | ... | ... |