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,62 +50,6 @@ namespace PW3270_NAMESPACE { | ||
50 | if(jvm || load_jvm(widget)) { | 50 | if(jvm || load_jvm(widget)) { |
51 | 51 | ||
52 | v3270_set_script(widget,'J',TRUE); | 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 | try { | 54 | try { |
111 | 55 | ||
@@ -158,7 +102,38 @@ namespace PW3270_NAMESPACE { | @@ -158,7 +102,38 @@ namespace PW3270_NAMESPACE { | ||
158 | env->CallStaticVoidMethod(cls, mid, args); | 102 | env->CallStaticVoidMethod(cls, mid, args); |
159 | 103 | ||
160 | // Check for exception | 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 | // And finish | 138 | // And finish |
164 | env->DeleteLocalRef(args); | 139 | env->DeleteLocalRef(args); |
src/plugins/hllapi/client.h
@@ -46,31 +46,6 @@ | @@ -46,31 +46,6 @@ | ||
46 | extern "C" { | 46 | extern "C" { |
47 | #endif | 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 | char * hllapi_get_string(int offset, size_t len); | 49 | char * hllapi_get_string(int offset, size_t len); |
75 | void hllapi_free(void *p); | 50 | void hllapi_free(void *p); |
76 | 51 |