On Mar 16, 2:45 pm, [EMAIL PROTECTED] (Greytrader) wrote:
> 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
>
> ...
>
> read more ยป

Here is the output of the first test with DEBUG = 5

C:\sylvaint\Inline-Java-0.52>perl -Mblib t/01_init.t
1..1
# Running under perl version 5.008008 for MSWin32
# Win32::BuildNumber 822
# Current time local: Wed Mar 19 13:35:52 2008
# Current time GMT:   Wed Mar 19 19:35:52 2008
# Using Test.pm version 1.25
Set up gcc environment - 3.4.5 (mingw special)
[perl][1] validate done.
[perl][1] Starting load.
[perl][4]    portable: ENV_VAR_PATH_SEP_CP for MSWin32 is ';'
[perl][4]    portable: SUB_FIX_JAVA_PATH => C:\sylvaint\Inline-
Java-0.52 for MSW
in32 is default 'C:\sylvaint\Inline-Java-0.52'
[perl][2]  classpath candidate 'C:\jre1.5.0_15\lib\ext\QTJava.zip'
scraped
[perl][4]    portable: SUB_FIX_JAVA_PATH => C:\Jts\Java for MSWin32 is
default '
C:\Jts\Java'
[perl][4]    portable: SUB_FIX_JAVA_PATH => C:\sylvaint\Inline-
Java-0.52\blib\li
b\Inline\Java\InlineJavaServer.jar for MSWin32 is default 'C:\sylvaint
\Inline-Ja
va-0.52\blib\lib\Inline\Java\InlineJavaServer.jar'
[perl][2]  classpath: C:\sylvaint\Inline-Java-0.52;C:\Jts\Java;C:
\sylvaint\Inlin
e-Java-0.52\blib\lib\Inline\Java\InlineJavaServer.jar
[perl][1] starting JVM...
[perl][1] JNI mode
[perl][1] JVM owner exiting...
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.
[perl][1] killed by natural death.
[perl][1] exiting with 2

Reply via email to