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>

Reply via email to