Commit c052f63e471536c949faad924727c12607db2641

Authored by perry.werneck@gmail.com
1 parent 1f80b410

Implementando teste da classe jni

Showing 2 changed files with 13 additions and 5 deletions   Show diff stats
src/java/Makefile.in
... ... @@ -92,7 +92,7 @@ $(BINDIR)/java/%.class: %.java $(BINDIR)/java/$(PACKAGE_NAME)/terminal.class
92 92 $(BINDIR)/java/$(PACKAGE_NAME)/%.class: %.java
93 93 @echo $< ...
94 94 @mkdir -p `dirname $@`
95   - $(JAVAC) -encoding utf-8 -d $(BINDIR)/java $^
  95 + @$(JAVAC) -encoding utf-8 -d $(BINDIR)/java $^
96 96  
97 97 #---[ Release targets ]--------------------------------------------------------
98 98  
... ... @@ -104,7 +104,7 @@ $(BINRLS)/@DLLPREFIX@jni3270@DLLEXT@: $(foreach SRC, $(basename $(SOURCES)), $(O
104 104 $(CLASS_RELEASE_OBJECTS)
105 105 @echo " LD `basename $@`"
106 106 @$(MKDIR) `dirname $@`
107   - $(CXX) @SYSDLL_FLAGS@ $(LDFLAGS) $(OO_LDFLAGS) -o $@ $^ $(CLASS_LIBS)
  107 + @$(CXX) @SYSDLL_FLAGS@ $(LDFLAGS) $(OO_LDFLAGS) -o $@ $^ $(CLASS_LIBS)
108 108  
109 109  
110 110 #---[ Debug targets ]----------------------------------------------------------
... ... @@ -119,7 +119,7 @@ $(BINDBG)/@DLLPREFIX@jni3270@DLLEXT@: $(foreach SRC, $(basename $(SOURCES)), $(O
119 119  
120 120  
121 121 run: $(BINDBG)/@DLLPREFIX@jni3270@DLLEXT@ $(BINDIR)/java/testprogram.class
122   - java -Djava.library.path=$(BINDBG) -cp .bin/java/ testprogram
  122 + @LD_LIBRARY_PATH=../../.bin/Debug/lib/ java -Djava.library.path=$(BINDBG) -cp .bin/java/ testprogram
123 123  
124 124 #---[ Misc targets ]-----------------------------------------------------------
125 125  
... ...
src/java/main.cc
... ... @@ -44,9 +44,17 @@ session * getHandle(JNIEnv *env, jobject obj) {
44 44  
45 45 JNIEXPORT jint JNICALL Java_pw3270_terminal_init(JNIEnv *env, jobject obj, jstring id) {
46 46  
47   - jlong handle = reinterpret_cast<jlong>(session::create());
  47 + try {
  48 +
  49 + jlong handle = reinterpret_cast<jlong>(session::create());
  50 + env->SetLongField(obj, getHandleField(env, obj), handle);
  51 +
  52 + } catch(std::exception &e) {
  53 +
  54 + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what());
  55 +
  56 + }
48 57  
49   - env->SetLongField(obj, getHandleField(env, obj), handle);
50 58  
51 59 return 0;
52 60 }
... ...