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