On Mar 19, 8:56 pm, [EMAIL PROTECTED] (Greytrader) wrote: > On Mar 19, 7:39 pm, [EMAIL PROTECTED] (Sisyphus) wrote: > > > > > ----- Original Message ----- > > From: "greytrader" <[EMAIL PROTECTED]> > > > . > > . > > > > 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 > > . > > . > > > 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 > > > When I built 0.51 with JNI, all of the tests ran fine (iirc) - and > > t/01_init.t hasn't changed from 0.51 to 0.52 afaict. > > > I'm no longer set up to play this stuff but I wonder if 0.51 (with JNI) > > builds ok for you ? If so, that might help track down the problem. > > > Does the code at line 54 (and thereabouts) of JVM.pm provide any useful > > hints ? > > > Cheers, > > Rob > > Same result with 0.51. I had to use nmake, dmake did not work for > target > java. > > Line 54 is: > > Inline::Java::JVM::new(C:/Perl/site/lib/Inline/Java/JVM.pm:54): > 54: my $jni = new Inline::Java::JNI( > 55: $ENV{CLASSPATH} || '', > 56: [EMAIL PROTECTED], > 57: $this->{embedded}, > 58: Inline::Java::get_DEBUG(), > 59: $o->get_java_config('NATIVE_DOUBLES'), > 60: ) ; > > DB<2> > Here are the values for the args: > DB<2> p $ENV{CLASSPATH} > C:\sylvaint\Inline-Java-0.52\t;C:\Jts\Java;C:\Perl\site\lib\Inline\Java > \InlineJavaServer.jar > > DB<3> p @args > > DB<4> p $this->{embedded} > 0 > > DB<5> p Inline::Java::get_DEBUG() > 5 > > DB<6> x $o > 0 Inline::Java=HASH(0x1c5d8bc) > 'API' => HASH(0x1c5d820) > 'build_dir' => > 'C:\\sylvaint\\Inline-Java-0.52\\t\\_Inline_test\\build\\_0 > 1_init_t_b433' > 'cleanup' => 1 > 'code' => "\cJclass types1 {\cJ\cIstatic public String > version(){\cJ\cI\cI > return System.getProperty(\"java.version\") ;\cJ\cI}\cJ}\cJ\cJ\cJ\cJ" > 'directory' => 'C:/sylvaint/Inline-Java-0.52/t/_Inline_test' > 'install_lib' => > 'C:\\sylvaint\\Inline-Java-0.52\\t\\_Inline_test\\lib' > 'language' => 'Java' > 'language_id' => 'Java' > 'location' => > 'C:\\sylvaint\\Inline-Java-0.52\\t\\_Inline_test\\lib\\auto\ > \_01_init_t_b433\\_01_init_t_b433.jdat' > 'modfname' => '_01_init_t_b433' > 'modpname' => '_01_init_t_b433' > 'module' => '_01_init_t_b433' > 'pkg' => 'main' > 'script' => '01_init.t' > 'suffix' => 'jdat' > 'CONFIG' => HASH(0x1ebaea4) > 'AUTONAME' => 1 > 'BUILD_NOISY' => 0 > 'BUILD_TIMERS' => 0 > 'CLEAN_AFTER_BUILD' => 1 > 'CLEAN_BUILD_AREA' => 0 > 'DEBUG' => 5 > 'DIRECTORY' => 'C:/sylvaint/Inline-Java-0.52/t/_Inline_test' > 'FORCE_BUILD' => 0 > 'GLOBAL_LOAD' => 0 > 'NAME' => '' > 'PORT' => 0 > 'PRINT_INFO' => 0 > 'PRINT_VERSION' => 0 > 'REPORTBUG' => 0 > 'SAFEMODE' => '-1' > 'UNTAINT' => 0 > 'USING' => ARRAY(0x1c578c4) > empty array > 'VERSION' => '' > 'WARNINGS' => 1 > 'WITH' => ARRAY(0x1be4824) > empty array > '_INSTALL_' => 0 > 'ILSM' => HASH(0x1e76568) > 'AUTOSTUDY' => 0 > 'BIND' => 'localhost' > 'CLASSPATH' => '' > 'DEBUG' => 5 > 'DEBUGGER' => 0 > 'EMBEDDED_JNI' => 0 > 'EXTRA_JAVAC_ARGS' => '' > 'EXTRA_JAVA_ARGS' => '' > 'HOST' => 'localhost' > 'J2SDK' => 'C:\\jdk1.5.0_15' > 'JNI' => 1 > 'NATIVE_DOUBLES' => 0 > 'PACKAGE' => '' > 'PORT' => 0 > 'PRIVATE' => 0 > 'SHARED_JVM' => 0 > 'STARTUP_DELAY' => 15 > 'START_JVM' => 1 > 'STUDY' => undef > 'WARN_METHOD_SELECT' => 0 > 'INLINE' => HASH(0x1c5d8a4) > 'DIRECTORY' => 'C:/sylvaint/Inline-Java-0.52/t/_Inline_test' > 'ILSM_module' => 'Inline::Java' > 'ILSM_suffix' => 'jdat' > 'ILSM_type' => 'interpreted' > 'md5' => 'b4330c82d320dac39376cbd6f1527138' > 'object_ready' => 1 > 'version' => 0.44 > > DB<7> > > I have stepped through the code a few times but I have yet to figure > out > what is wrong. > > Thanks, > > Sylvain
Finally figured out what was wrong, I had an older jvm.dll that got a hit in the path before the correct one. Removed the old one and all is well. Here is the final procedure to install inline-java .52 on windows XP with dmake and MGW. Works with nmake too. ***You need to link with jdkxx/lib/jvm.lib. For g++ to work just copy jvm.lib to libjvm.a. This should be the only extra step for this Windows installation. Add the required paths as per the perl Makefile.PL output. set PERL_INLINE_JAVA_JNI=1 perl Makefile.PL J2SDK=c:\jdk1.5.0_15 >>>>> your jdk install path dmake dmake test dmake install