martin.out: New file.
* libjava.jni/martin.out: New file. * libjava.jni/martin.c: New file. * libjava.jni/martin.java: New file. From-SVN: r39286
This commit is contained in:
parent
66cce54da0
commit
d0815622ea
4 changed files with 72 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2001-01-26 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
* libjava.jni/martin.out: New file.
|
||||||
|
* libjava.jni/martin.c: New file.
|
||||||
|
* libjava.jni/martin.java: New file.
|
||||||
|
|
||||||
2001-01-16 Richard Henderson <rth@redhat.com>
|
2001-01-16 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
* lib/libjava.exp (bytecompile_file): Don't unset CLASSPATH.
|
* lib/libjava.exp (bytecompile_file): Don't unset CLASSPATH.
|
||||||
|
|
41
libjava/testsuite/libjava.jni/martin.c
Normal file
41
libjava/testsuite/libjava.jni/martin.c
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#include <jni.h>
|
||||||
|
#include "martin.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void Java_martin_myNative(JNIEnv* env, jobject this, jstring s)
|
||||||
|
{
|
||||||
|
jclass cls;
|
||||||
|
jfieldID fid;
|
||||||
|
jobject obj;
|
||||||
|
jmethodID mid;
|
||||||
|
|
||||||
|
printf("From C\n");
|
||||||
|
|
||||||
|
cls = (*env)->FindClass(env, "java/lang/System");
|
||||||
|
if (cls == 0) {
|
||||||
|
printf("java/lang/System lookup failed\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fid = (*env)->GetStaticFieldID(env, cls, "out", "Ljava/io/PrintStream;");
|
||||||
|
if (fid == 0) {
|
||||||
|
printf("java/lang/System::out lookup failed\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
obj = (*env)->GetStaticObjectField(env, cls, fid);
|
||||||
|
if (obj == 0) {
|
||||||
|
printf("GetStaticObjectField call failed\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cls = (*env)->GetObjectClass(env, obj);
|
||||||
|
if (cls == 0) {
|
||||||
|
printf("GetObjectClass(out) failed\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mid = (*env)->GetMethodID(env, cls, "println", "(Ljava/lang/String;)V");
|
||||||
|
if (mid == 0) {
|
||||||
|
printf("println method lookup failed\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
(*env)->CallVoidMethod(env, obj, mid, s);
|
||||||
|
}
|
||||||
|
|
21
libjava/testsuite/libjava.jni/martin.java
Normal file
21
libjava/testsuite/libjava.jni/martin.java
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
// Test case from Martin Kahlert <martin.kahlert@infineon.com>
|
||||||
|
|
||||||
|
public class martin {
|
||||||
|
public native void myNative(String s);
|
||||||
|
|
||||||
|
public void myJava(String s) {
|
||||||
|
s = s + ", Java";
|
||||||
|
System.out.println(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String args[]) {
|
||||||
|
martin x = new martin();
|
||||||
|
x.myJava("Hello");
|
||||||
|
x.myNative("Hello, Java (from C)");
|
||||||
|
x.myJava("Goodbye");
|
||||||
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
System.loadLibrary("martin");
|
||||||
|
}
|
||||||
|
}
|
4
libjava/testsuite/libjava.jni/martin.out
Normal file
4
libjava/testsuite/libjava.jni/martin.out
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
Hello, Java
|
||||||
|
From C
|
||||||
|
Hello, Java (from C)
|
||||||
|
Goodbye, Java
|
Loading…
Add table
Add a link
Reference in a new issue