On Mar 16, 2:21 pm, [EMAIL PROTECTED] (Greytrader) wrote: > I have been trying to get Inline Jave to work with JNI. I am using > Inline Java .52 with MINGW and nmake. It seems to build fine but all > the tests fail. Note that all tests pass without building with JNI. > I am generating libjvm.a from jvm.dll with: dlltool --kill-at -dllname > jvm.dll --def jvm.def --output-lib libjvm.a > > Here is the build log with the tests output: > > set PERL_INLINE_JAVA_JNI=1 > C:\sylvaint\Inline-Java-0.52>perl Makefile.PL J2SDK=C:\jdk1.5.0_15 > Set up gcc environment - 3.4.5 (mingw special) > > Welcome to the Inline::Java installation procedure. > > Default J2SDK for Inline::Java will be 'C:\jdk1.5.0_15'. > See module documentation for information on how to use a different > J2SDK > or change this default value. > > Checking if your kit is complete... > Looks good > > Inline::Java can use a JNI extension that allows the Java Virtual > Machine > (JVM) to be dynamically linked with Perl instead of running as a > separate > process. The use of this extension is optional, and building it still > allows Inline::Java to run the JVM in the default (separate process) > fashion. > Note: You need a C compiler to build the extension. > Note: You must build the extension if you wish to use PerlNatives or > PerlInterpreter. > Do you wish to build the JNI extension? [y] > > Building JNI extension. > > 1) C:\jdk1.5.0_15\jre\bin\client > 2) C:\jdk1.5.0_15\jre\bin\server > Please select from the above list which 'jvm.dll' to use: [1] > > Building with: > C:\jdk1.5.0_15\include\jni.h > C:\jdk1.5.0_15\include\win32\jni_md.h > C:\jdk1.5.0_15\lib\jvm.lib > C:\jdk1.5.0_15\jre\bin\client\jvm.dll > > Note: In order for Inline::Java to use the JNI extension, you will > need to > use the JNI configuration option or set the PERL_INLINE_JAVA_JNI > environment > variable to a true value. You will also need to add the following > directories > to your PATH environment variable: > C:\jdk1.5.0_15\jre\bin\client > C:\jdk1.5.0_15\jre\bin > See README.JNI for more information. > > The PerlNatives extension allows for callbacks to be defined as native > Java methods. It is still EXPERIMENTAL and may not build or work > properly > on all platforms. See documentation for more details. > Note: PerlNatives requires J2SDK 1.4 or greater. > Do you wish to build the PerlNatives extension? [n] > > The PerlInterpreter extension allows Inline::Java to be loaded > directly from > Java using an embedded Perl interpreter. It is still EXPERIMENTAL and > may not build or work properly on all platforms. See documentation for > more details. > Do you wish to build the PerlInterpreter extension? [n] > > Writing Makefile for Inline::Java::JNI > Writing Makefile for Inline::Java > > You can continue the installation with the following commands: > % nmake > % nmake test > % nmake install > > C:\sylvaint\Inline-Java-0.52>nmake > > Microsoft (R) Program Maintenance Utility Version 1.50 > Copyright (c) Microsoft Corp 1988-94. All rights reserved. > > "C:\jdk1.5.0_15\bin\javac.exe" -deprecation -g -d Java\classes > Java\sour > ces\org\perl\inline\java\*.java > Note: Some input files use unchecked or unsafe operations. > Note: Recompile with -Xlint:unchecked for details. > "C:\jdk1.5.0_15\bin\jar.exe" cf Java\InlineJavaServer.jar -C > Java\classe > s org -C Java\classes InlineJava.properties > "C:\jdk1.5.0_15\bin\jar.exe" cf Java\InlineJavaUser.jar -C Java > \classes > InlineJavaUserClassLink.class > cp Java.pm blib\lib\Inline\Java.pm > cp Java.pod blib\lib\Inline\Java.pod > cp Java\InlineJavaUser.jar blib\lib\Inline\Java\InlineJavaUser.jar > cp Java\InlineJavaServer.jar blib\lib\Inline\Java\InlineJavaServer.jar > nmake -f Makefile all -nologo > cp sources\org\perl\inline\java/InlineJavaServerThread.java ..\blib\lib > \Inline\J > ava\sources\org\perl\inline\java\InlineJavaServerThread.java > cp default_j2sdk.pl ..\blib\lib\Inline\Java\default_j2sdk.pl > cp sources\org\perl\inline\java/InlineJavaPerlInterpreter.java ..\blib > \lib\Inlin > e\Java\sources\org\perl\inline\java\InlineJavaPerlInterpreter.java > cp Protocol.pm ..\blib\lib\Inline\Java\Protocol.pm > cp sources\org\perl\inline\java/InlineJavaCallbackQueue.java ..\blib > \lib\Inline\ > Java\sources\org\perl\inline\java\InlineJavaCallbackQueue.java > cp Class.pm ..\blib\lib\Inline\Java\Class.pm > cp sources\org\perl\inline\java/InlineJavaThrown.java ..\blib\lib > \Inline\Java\so > urces\org\perl\inline\java\InlineJavaThrown.java > cp sources\org\perl\inline\java/InlineJavaProtocol.java ..\blib\lib > \Inline\Java\ > sources\org\perl\inline\java\InlineJavaProtocol.java > cp sources\org\perl\inline\java/InlineJavaPerlObject.java ..\blib\lib > \Inline\Jav > a\sources\org\perl\inline\java\InlineJavaPerlObject.java > cp sources\org\perl\inline\java/InlineJavaUserClassLink.java ..\blib > \lib\Inline\ > Java\sources\org\perl\inline\java\InlineJavaUserClassLink.java > cp sources\org\perl\inline\java/InlineJavaException.java ..\blib\lib > \Inline\Java > \sources\org\perl\inline\java\InlineJavaException.java > cp sources\org\perl\inline\java/InlineJavaArray.java ..\blib\lib\Inline > \Java\sou > rces\org\perl\inline\java\InlineJavaArray.java > cp sources\org\perl\inline\java/ > InlineJavaInvocationTargetException.java ..\blib > \lib\Inline\Java\sources\org\perl\inline\java > \InlineJavaInvocationTargetExceptio > n.java > cp sources\org\perl\inline\java/InlineJavaCallback.java ..\blib\lib > \Inline\Java\ > sources\org\perl\inline\java\InlineJavaCallback.java > cp Callback.pod ..\blib\lib\Inline\Java\Callback.pod > cp sources\org\perl\inline\java/InlineJavaClass.java ..\blib\lib\Inline > \Java\sou > rces\org\perl\inline\java\InlineJavaClass.java > cp sources\org\perl\inline\java/InlineJavaPerlException.java ..\blib > \lib\Inline\ > Java\sources\org\perl\inline\java\InlineJavaPerlException.java > cp JVM.pm ..\blib\lib\Inline\Java\JVM.pm > cp sources\org\perl\inline\java/InlineJavaPerlNatives.java ..\blib\lib > \Inline\Ja > va\sources\org\perl\inline\java\InlineJavaPerlNatives.java > cp Server.pm ..\blib\lib\Inline\Java\Server.pm > cp sources\org\perl\inline\java/InlineJavaUserClassLoader.java ..\blib > \lib\Inlin > e\Java\sources\org\perl\inline\java\InlineJavaUserClassLoader.java > cp Portable.pm ..\blib\lib\Inline\Java\Portable.pm > cp Array.pm ..\blib\lib\Inline\Java\Array.pm > cp sources\org\perl\inline\java/InlineJavaCastException.java ..\blib > \lib\Inline\ > Java\sources\org\perl\inline\java\InlineJavaCastException.java > cp Handle.pm ..\blib\lib\Inline\Java\Handle.pm > cp sources\org\perl\inline\java/InlineJavaServer.java ..\blib\lib > \Inline\Java\so > urces\org\perl\inline\java\InlineJavaServer.java > cp sources\org\perl\inline\java/InlineJavaPerlCaller.java ..\blib\lib > \Inline\Jav > a\sources\org\perl\inline\java\InlineJavaPerlCaller.java > cp Callback.pm ..\blib\lib\Inline\Java\Callback.pm > cp Object.pm ..\blib\lib\Inline\Java\Object.pm > cp sources\org\perl\inline\java/InlineJavaUtils.java ..\blib\lib\Inline > \Java\sou > rces\org\perl\inline\java\InlineJavaUtils.java > cp sources\org\perl\inline\java/InlineJavaHandle.java ..\blib\lib > \Inline\Java\so > urces\org\perl\inline\java\InlineJavaHandle.java > cp JNI.pm ..\blib\lib\Inline\Java\JNI.pm > C:\Perl\bin\perl.exe C:\Perl\lib\ExtUtils\xsubpp -typemap C: > \Perl\lib\E > xtUtils\typemap -typemap typemap JNI.xs > JNI.xsc && C:\Perl\bin > \perl.exe -MExt > Utils::Command -e mv JNI.xsc JNI.c > gcc -c "-IC:\jdk1.5.0_15\include" "-IC:\jdk1.5.0_15\include > \win32" -DN > DEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED - > DUSE_SITE > CUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT - > DPERL_IMPLICIT_SYS -DUS > E_PERLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasing - > O2 -DVERS > ION=\"0.52\" -DXS_VERSION=\"0.52\" "-IC:\Perl\lib\CORE" JNI.c > Running Mkbootstrap for Inline::Java::JNI () > C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 JNI.bs > C:\Perl\bin\perl.exe -MExtUtils::Mksymlists -e > "Mksymlists('NAME'=>\"In > line::Java::JNI\", 'DLBASE' => 'JNI', 'DL_FUNCS' => { }, 'FUNCLIST' > => [], 'IMP > ORTS' => { }, 'DL_VARS' => []);" > Set up gcc environment - 3.4.5 (mingw special) > dlltool --def JNI.def --output-exp dll.exp > g++ -o ..\blib\arch\auto\Inline\Java\JNI\JNI.dll -Wl,--base- > file -Wl,dll > .base -mdll -L"C:\Perl\lib\CORE" JNI.o -Wl,--image-base,0x2e220000 C: > \Perl\lib\ > CORE\perl58.lib C:\jdk1.5.0_15\lib\libjvm.a C:\MinGW\lib\libkernel32.a > C:\MinGW\ > lib\libuser32.a C:\MinGW\lib\libgdi32.a C:\MinGW\lib\libwinspool.a C: > \MinGW\lib\ > libcomdlg32.a C:\MinGW\lib\libadvapi32.a C:\MinGW\lib\libshell32.a C: > \MinGW\lib\ > libole32.a C:\MinGW\lib\liboleaut32.a C:\MinGW\lib\libnetapi32.a C: > \MinGW\lib\li > buuid.a C:\MinGW\lib\libws2_32.a C:\MinGW\lib\libmpr.a C:\MinGW\lib > \libwinmm.a C > :\MinGW\lib\libversion.a C:\MinGW\lib\libodbc32.a C:\MinGW\lib > \libodbccp32.a C:\ > MinGW\lib\libmsvcrt.a dll.exp > dlltool --def JNI.def --base-file dll.base --output-exp > dll.exp > g++ -o ..\blib\arch\auto\Inline\Java\JNI\JNI.dll -mdll -L"C: > \Perl\lib\CO > RE" JNI.o -Wl,--image-base,0x2e220000 C:\Perl\lib\CORE\perl58.lib C: > \jdk1.5.0_1 > 5\lib\libjvm.a C:\MinGW\lib\libkernel32.a C:\MinGW\lib\libuser32.a C: > \MinGW\lib\ > libgdi32.a C:\MinGW\lib\libwinspool.a C:\MinGW\lib\libcomdlg32.a C: > \MinGW\lib\li > badvapi32.a C:\MinGW\lib\libshell32.a C:\MinGW\lib\libole32.a C:\MinGW > \lib\libol > eaut32.a C:\MinGW\lib\libnetapi32.a C:\MinGW\lib\libuuid.a C:\MinGW\lib > \libws2_3 > 2.a C:\MinGW\lib\libmpr.a C:\MinGW\lib\libwinmm.a C:\MinGW\lib > \libversion.a C:\M > inGW\lib\libodbc32.a C:\MinGW\lib\libodbccp32.a C:\MinGW\lib > \libmsvcrt.a dll.exp > > C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 755 ..\blib > \arch\auto\ > Inline\Java\JNI\JNI.dll > C:\Perl\bin\perl.exe -MExtUtils::Command -e cp JNI.bs ..\blib > \arch\auto\ > Inline\Java\JNI\JNI.bs > C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 ..\blib > \arch\auto\ > Inline\Java\JNI\JNI.bs > cd .. > > C:\sylvaint\Inline-Java-0.52>nmake test > > Microsoft (R) Program Maintenance Utility Version 1.50 > Copyright (c) Microsoft Corp 1988-94. All rights reserved. > > nmake -f Makefile all -nologo > cd .. > C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" > "test_harness(0, 'bl > ib\lib', 'blib\arch')" t/*.t > t/01_init..............Set up gcc environment - 3.4.5 (mingw special) > Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > INIT failed--call queue aborted. > t/01_init..............dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED test 1 > Failed 1/1 tests, 0.00% okay > t/02_primitives........Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > INIT failed--call queue aborted. > t/02_primitives........dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 1-102 > Failed 102/102 tests, 0.00% okay > t/02_primitives_1_4....Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > BEGIN failed--compilation aborted at t/02_primitives_1_4.t line 24. > t/02_primitives_1_4....dubious > Test returned status 2 (wstat 512, 0x200) > t/03_objects...........Set up gcc environment - 3.4.5 (mingw special) > > Note: inner_obj13.java uses unchecked or unsafe operations. > Note: Recompile with -Xlint:unchecked for details. > > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > INIT failed--call queue aborted. > t/03_objects...........dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 1-16 > Failed 16/16 tests, 0.00% okay > t/04_members...........Set up gcc environment - 3.4.5 (mingw special) > > Note: _04_members_t_17c5.java uses unchecked or unsafe operations. > Note: Recompile with -Xlint:unchecked for details. > > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > INIT failed--call queue aborted. > t/04_members...........dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 1-28 > Failed 28/28 tests, 0.00% okay > t/05_arrays............Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > INIT failed--call queue aborted. > t/05_arrays............dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 1-55 > Failed 55/55 tests, 0.00% okay > t/06_static............Set up gcc environment - 3.4.5 (mingw special) > > Note: types6.java uses unchecked or unsafe operations. > Note: Recompile with -Xlint:unchecked for details. > > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > INIT failed--call queue aborted. > t/06_static............dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 1-10 > Failed 10/10 tests, 0.00% okay > t/07_polymorph.........Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > INIT failed--call queue aborted. > t/07_polymorph.........dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 1-24 > Failed 24/24 tests, 0.00% okay > t/08_study.............Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > BEGIN failed--compilation aborted at t/08_study.t line 20. > t/08_study.............dubious > Test returned status 2 (wstat 512, 0x200) > t/09_usages............Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > BEGIN failed--compilation aborted at t/09_usages.t line 31. > t/09_usages............dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 1-6 > Failed 6/6 tests, 0.00% okay > t/10_1_shared_alone....skipped > all skipped: no reason given > t/10_2_shared_start....Set up gcc environment - 3.4.5 (mingw special) > skipped > all skipped: no reason given > t/10_3_shared_use......Set up gcc environment - 3.4.5 (mingw special) > skipped > all skipped: no reason given > t/10_4_shared_stop.....Set up gcc environment - 3.4.5 (mingw special) > skipped > all skipped: no reason given > t/10_5_shared_fork.....Set up gcc environment - 3.4.5 (mingw special) > skipped > all skipped: no reason given > t/10_6_shared_sim......skipped > all skipped: no reason given > t/11_exceptions........Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > INIT failed--call queue aborted. > t/11_exceptions........dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 1-8 > Failed 8/8 tests, 0.00% okay > t/12_1_callbacks.......Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > INIT failed--call queue aborted. > t/12_1_callbacks.......dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 1-37 > Failed 37/37 tests, 0.00% okay > t/13_handles...........Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > INIT failed--call queue aborted. > t/13_handles...........dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 1-12 > Failed 12/12 tests, 0.00% okay > t/14_encoding..........Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > INIT failed--call queue aborted. > t/14_encoding..........dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 1-9 > Failed 9/9 tests, 0.00% okay > t/15_native_doubles....Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > INIT failed--call queue aborted. > t/15_native_doubles....dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED tests 1-2 > Failed 2/2 tests, 0.00% okay > t/99_end...............Set up gcc environment - 3.4.5 (mingw special) > Can't create Java JVM using JNI at C:\sylvaint\Inline-Java-0.52\blib > \lib/Inline/ > Java/JVM.pm line 54. > BEGIN failed--compilation aborted at t/99_end.t line 15. > t/99_end...............dubious > Test returned status 2 (wstat 512, 0x200) > DIED. FAILED test 1 > Failed 1/1 tests, 0.00% okay > Failed Test Stat Wstat Total Fail List of Failed > ------------------------------------------------------------------------------- > t/01_init.t 2 512 1 2 1 > t/02_primitives.t 2 512 102 204 1-102 > t/02_primitives_1_4.t 2 512 ?? ?? ?? > t/03_objects.t 2 512 16 32 1-16 > t/04_members.t 2 512 28 56 1-28 > t/05_arrays.t 2 512 55 110 1-55 > t/06_static.t 2 512 10 20 1-10 > t/07_polymorph.t 2 512 24 48 1-24 > t/08_study.t 2 512 ?? ?? ?? > t/09_usages.t 2 512 6 12 1-6 > t/11_exceptions.t 2 512 8 16 1-8 > t/12_1_callbacks.t 2 512 37 74 1-37 > t/13_handles.t 2 512 12 24 1-12 > t/14_encoding.t 2 512 9 18 1-9 > t/15_native_doubles.t 2 512 2 4 1-2 > t/99_end.t 2 512 1 2 1 > 6 tests skipped. > Failed 16/22 test scripts. 311/311 subtests failed. > Files=22, Tests=311, 29 wallclock secs ( 0.00 cusr + 0.00 csys = > 0.00 CPU) > Failed 16/22 test programs. 311/311 subtests failed. > NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code > '0x2' > Stop. > > C:\sylvaint\Inline-Java-0.52>
This is on Windows XP...