[Assorted-commits] SF.net SVN: assorted:[917] sandbox/trunk/src/java/java-from-c
Brought to you by:
yangzhang
From: <yan...@us...> - 2008-08-01 05:29:14
|
Revision: 917 http://assorted.svn.sourceforge.net/assorted/?rev=917&view=rev Author: yangzhang Date: 2008-08-01 05:29:24 +0000 (Fri, 01 Aug 2008) Log Message: ----------- posting before asking for support Modified Paths: -------------- sandbox/trunk/src/java/java-from-c/Makefile sandbox/trunk/src/java/java-from-c/jnilib.cpp sandbox/trunk/src/java/java-from-c/jnitest.cpp Added Paths: ----------- sandbox/trunk/src/java/java-from-c/Makefile.osx Modified: sandbox/trunk/src/java/java-from-c/Makefile =================================================================== --- sandbox/trunk/src/java/java-from-c/Makefile 2008-08-01 05:08:51 UTC (rev 916) +++ sandbox/trunk/src/java/java-from-c/Makefile 2008-08-01 05:29:24 UTC (rev 917) @@ -1,13 +1,14 @@ -test: JniTest.h jnitest.cpp libjnitest.jnilib - g++ -g3 -arch x86_64 -o test -I. -framework JavaVM jnitest.cpp libjnitest.dylib +CPATH := /usr/lib/jvm/java-6-openjdk/include:/usr/lib/jvm/java-6-openjdk/include/linux -libjnitest.jnilib: libjnitest.dylib - g++ -bundle -g3 -arch x86_64 -o libjnitest.jnilib -I. -framework JavaVM libjnitest.dylib +test: JniTest.h jnitest.cpp libjnitest.so + g++ -g3 -o test jnitest.cpp librealjnitest.so -libjnitest.dylib: jnilib.cpp JniTest.h - g++ -g3 -arch x86_64 -I. -dynamiclib -undefined dynamic_lookup -single_module \ - -o libjnitest.dylib -framework JavaVM jnilib.cpp +libjnitest.so: librealjnitest.so + g++ -g3 -shared -fPIC -o libjnitest.so librealjnitest.so +librealjnitest.so: jnilib.cpp JniTest.h + g++ -g3 -shared -fPIC -o librealjnitest.so jnilib.cpp + JniTest.h: JniTest.class javah JniTest @@ -17,5 +18,5 @@ .PHONY: clean clean: - $(RM) test test.dSYM JniTest.h *.jnilib *.dylib + rm -f test JniTest.h *.so Copied: sandbox/trunk/src/java/java-from-c/Makefile.osx (from rev 916, sandbox/trunk/src/java/java-from-c/Makefile) =================================================================== --- sandbox/trunk/src/java/java-from-c/Makefile.osx (rev 0) +++ sandbox/trunk/src/java/java-from-c/Makefile.osx 2008-08-01 05:29:24 UTC (rev 917) @@ -0,0 +1,21 @@ +test: JniTest.h jnitest.cpp libjnitest.jnilib + g++ -g3 -arch x86_64 -o test -I. -framework JavaVM jnitest.cpp libjnitest.dylib + +libjnitest.jnilib: libjnitest.dylib + g++ -bundle -g3 -arch x86_64 -o libjnitest.jnilib -I. -framework JavaVM libjnitest.dylib + +libjnitest.dylib: jnilib.cpp JniTest.h + g++ -g3 -arch x86_64 -I. -dynamiclib -undefined dynamic_lookup -single_module \ + -o libjnitest.dylib -framework JavaVM jnilib.cpp + +JniTest.h: JniTest.class + javah JniTest + +JniTest.class: JniTest.java + javac JniTest.java + +.PHONY: clean + +clean: + $(RM) test test.dSYM JniTest.h *.jnilib *.dylib + Modified: sandbox/trunk/src/java/java-from-c/jnilib.cpp =================================================================== --- sandbox/trunk/src/java/java-from-c/jnilib.cpp 2008-08-01 05:08:51 UTC (rev 916) +++ sandbox/trunk/src/java/java-from-c/jnilib.cpp 2008-08-01 05:29:24 UTC (rev 917) @@ -11,4 +11,5 @@ cout << "native: " << x << endl; cout.flush(); } -} \ No newline at end of file +} + Modified: sandbox/trunk/src/java/java-from-c/jnitest.cpp =================================================================== --- sandbox/trunk/src/java/java-from-c/jnitest.cpp 2008-08-01 05:08:51 UTC (rev 916) +++ sandbox/trunk/src/java/java-from-c/jnitest.cpp 2008-08-01 05:29:24 UTC (rev 917) @@ -3,21 +3,22 @@ #include <iostream> #include <jni.h> #include <cassert> + using namespace std; int main(int argc, char* argv[]) { - + Java_JniTest_printNativeValue(NULL, NULL, 5); - + JavaVMOption options[2]; JavaVMInitArgs vm_args; JavaVM *jvm; JNIEnv *env; long status; - options[0].optionString = "-Djava.class.path=."; - options[1].optionString = "-verbose:jni"; - //options[2].optionString = "-Xverbose:class"; + options[0].optionString = strdup("-Djava.class.path=."); + options[1].optionString = strdup("-verbose:jni"); + //options[2].optionString = strdup("-Xverbose:class"); memset(&vm_args, 0, sizeof(vm_args)); vm_args.version = JNI_VERSION_1_6; @@ -30,10 +31,10 @@ fprintf(stderr, "Error creating VM\n"); return 1; } - + jclass class_JniTest; jint value; - + jthrowable e; class_JniTest = env->FindClass("JniTest"); e = env->ExceptionOccurred(); @@ -44,8 +45,8 @@ else{ cout<<"Found class\n"; } - - + + assert(class_JniTest != NULL); jmethodID id_print = env->GetMethodID(class_JniTest, "printValue", "(I)V"); e = env->ExceptionOccurred(); @@ -66,11 +67,12 @@ cout<<"Found method 2\n"; } jobject obj = env->NewObject(class_JniTest, id_construct); - for (int i = 0; i < 100000; i++) + for (int i = 0; i < 100000; i++) env->CallVoidMethod(obj, id_print, i); - + cout << "This is some output." << endl; - + jvm->DestroyJavaVM(); return 0; -} \ No newline at end of file +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |