Hi. I've jumped into the deep end here as I'm fairly new to OSX and very new to both Java and trying to develop on OSX.
Using: perl Makefile.PL J2SDK=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home and selecting no for options like JNI gives me Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/10_1_shared_alone.t 4 1024 4 8 200.00% 1-4 t/10_2_shared_start.t 4 1024 3 6 200.00% 1-3 t/10_3_shared_use.t 255 65280 3 6 200.00% 1-3 t/10_4_shared_stop.t 22 5632 4 8 200.00% 1-4 t/10_5_shared_fork.t 8 1 12.50% 6 t/10_6_shared_sim.t 22 5632 7 14 200.00% 1-7 Failed 6/18 test scripts, 66.67% okay. 22/314 subtests failed, 92.99% okay. With errors looking like: t/10_1_shared_alone....Can't exec JVM: open3: open(GLOB(0x180a320), >&=9) failed: Bad file descriptor at /Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/blib/lib/Inline/Java/JVM.pm line 175 at /Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/blib/lib/Inline/Java.pm line 480 BEGIN failed--compilation aborted at t/10_1_shared_alone.t line 23. JVM taking more than 15 seconds to start, or died before Perl could connect. Increase config STARTUP_DELAY if necessary. at /Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/blib/lib/Inline/Java.pm line 480 So I export PERL_INLINE_JAVA_STARTUP_DELAY=50 and now the errors look like: t/10_2_shared_start....Can't locate object method "new" via package "t10::t10" (perhaps you forgot to load "t10::t10"?) at t/10_2_shared_start.t line 36, <GEN9> line 3. A bit of googling turned up http://www.mail-archive.com/inline@perl.org/msg02739.html in which Ken Williams is having similar, but not identical, problems. I've appended the build and test logs etc. I don't know if it's relevant but I did once see t/10_1_shared_alone.t fail: t/10_1_shared_alone....Can't locate object method "new" via package "t10" (perhaps you forgot to load "t10"?) at t/10_1_shared_alone.t line 26, <GEN0> line 3. t/10_1_shared_alone....dubious Test returned status 255 (wstat 65280, 0xff00) In an effort to reproduce that I ran $ PERL_INLINE_JAVA_DEBUG=99 perl -Mblib t/10_1_shared_alone.t twice. The first worked fine, the second failed with Can't exec JVM: open3: open(GLOB(0x180a29c), >&=8) failed: Bad file descriptor at /Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/blib/lib/Inline/Java/JVM.pm line 175 at /Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/blib/lib/Inline/Java.pm line 480 then hung till the timeout. Repeated attempts would sometimes work, sometimes not. Is this expected behaviour? Let me know if I can help any. Tim. $ perl Makefile.PL J2SDK=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home Welcome to the Inline::Java installation procedure. Default J2SDK for Inline::Java will be '/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home'. 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] n Writing Makefile for Inline::Java::JNI Writing Makefile for Inline::Java You can continue the installation with the following commands: % make java % make % make test % make install $ make java "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/javac" -deprecation -g -d Java/classes Java/sources/org/perl/inline/java/*.java "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/jar" cf Java/InlineJavaServer.jar -C Java/classes org -C Java/classes InlineJava.properties "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/jar" cf Java/InlineJavaUser.jar -C Java/classes InlineJavaUserClassLink.class $ make cp Java.pm blib/lib/Inline/Java.pm cp Java/InlineJavaUser.jar blib/lib/Inline/Java/InlineJavaUser.jar cp Java.pod blib/lib/Inline/Java.pod cp Java/InlineJavaServer.jar blib/lib/Inline/Java/InlineJavaServer.jar /Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/Java cp default_j2sdk.pl ../blib/lib/Inline/Java/default_j2sdk.pl cp sources/org/perl/inline/java/InlineJavaPerlException.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaPerlException.java cp Protocol.pm ../blib/lib/Inline/Java/Protocol.pm cp sources/org/perl/inline/java/InlineJavaClass.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaClass.java cp sources/org/perl/inline/java/InlineJavaPerlObject.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaPerlObject.java cp Class.pm ../blib/lib/Inline/Java/Class.pm cp sources/org/perl/inline/java/InlineJavaArray.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaArray.java cp Server.pm ../blib/lib/Inline/Java/Server.pm cp Portable.pm ../blib/lib/Inline/Java/Portable.pm cp sources/org/perl/inline/java/InlineJavaCastException.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaCastException.java cp Array.pm ../blib/lib/Inline/Java/Array.pm cp sources/org/perl/inline/java/InlineJavaInvocationTargetException.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaInvocationTargetException.java cp sources/org/perl/inline/java/InlineJavaCallbackQueue.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaCallbackQueue.java cp sources/org/perl/inline/java/InlineJavaPerlInterpreter.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaPerlInterpreter.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/InlineJavaUserClassLoader.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaUserClassLoader.java cp sources/org/perl/inline/java/InlineJavaServerThread.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaServerThread.java cp sources/org/perl/inline/java/InlineJavaThrown.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaThrown.java cp sources/org/perl/inline/java/InlineJavaServer.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaServer.java cp Callback.pod ../blib/lib/Inline/Java/Callback.pod 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/InlineJavaCallback.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaCallback.java cp JVM.pm ../blib/lib/Inline/Java/JVM.pm 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/InlineJavaPerlNatives.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaPerlNatives.java cp sources/org/perl/inline/java/InlineJavaUtils.java ../blib/lib/Inline/Java/sources/org/perl/inline/java/InlineJavaUtils.java cp sources/org/perl/inline/java/InlineJavaPerlCaller.java ../blib/lib/Inline/Java/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 JNI.pm ../blib/lib/Inline/Java/JNI.pm Manifying ../blib/man3/Inline::Java::Callback.3 Manifying blib/man3/Inline::Java.3 $ make test /Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/Java PERL_DL_NONLAZY=1 /home/value/apps/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/01_init.............. Perl version is 5.008006 Inline version is 0.44 Inline::Java version is 0.50 J2SDK version is 1.4.2_07, from /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home CLASSPATH is /Users/timbo/dbi/dbi2/mysql/mysql-connector-java/mysql-connector-java-3.1.10-bin.jar: t/01_init..............ok t/02_primitives........ok t/03_objects...........ok t/04_members...........ok t/05_arrays............ok t/06_static............ok t/07_polymorph.........ok t/08_study.............ok t/09_usages............ok t/10_1_shared_alone....ok t/10_2_shared_start....Can't locate object method "new" via package "t10::t10" (perhaps you forgot to load "t10::t10"?) at t/10_2_shared_start.t line 36, <GEN9> line 3. t/10_2_shared_start....dubious Test returned status 22 (wstat 5632, 0x1600) DIED. FAILED tests 1-3 Failed 3/3 tests, 0.00% okay t/10_3_shared_use......Can't locate object method "new" via package "t10::t10" (perhaps you forgot to load "t10::t10"?) at t/10_3_shared_use.t line 35, <GEN0> line 3. t/10_3_shared_use......dubious Test returned status 255 (wstat 65280, 0xff00) DIED. FAILED tests 1-3 Failed 3/3 tests, 0.00% okay t/10_4_shared_stop.....Can't locate object method "new" via package "t10::t10" (perhaps you forgot to load "t10::t10"?) at t/10_4_shared_stop.t line 34, <GEN0> line 3. t/10_4_shared_stop.....dubious Test returned status 255 (wstat 65280, 0xff00) DIED. FAILED tests 1-4 Failed 4/4 tests, 0.00% okay t/10_5_shared_fork.....Can't locate object method "new" via package "t10::t10" at t/10_5_shared_fork.t line 67. Can't locate object method "new" via package "t10::t10" at t/10_5_shared_fork.t line 67. Can't locate object method "new" via package "t10::t10" at t/10_5_shared_fork.t line 67. Can't locate object method "new" via package "t10::t10" at t/10_5_shared_fork.t line 67. Can't locate object method "new" via package "t10::t10" at t/10_5_shared_fork.t line 67. t/10_5_shared_fork.....ok 4/8# Test 6 got: "0" (t/10_5_shared_fork.t at line 54) # Expected: "15" # t/10_5_shared_fork.t line 54 is: ok($t10::t10::i, $sum) ; t/10_5_shared_fork.....FAILED test 6 Failed 1/8 tests, 87.50% okay t/10_6_shared_sim......Can't locate object method "new" via package "t10::t10" (perhaps you forgot to load "t10::t10"?) at t/10_6_shared_sim.t line 32, <GEN9> line 3. t/10_6_shared_sim......dubious Test returned status 22 (wstat 5632, 0x1600) DIED. FAILED tests 1-7 Failed 7/7 tests, 0.00% okay t/11_exceptions........ok t/12_1_callbacks.......ok t/13_end...............ok Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/10_2_shared_start.t 22 5632 3 6 200.00% 1-3 t/10_3_shared_use.t 255 65280 3 6 200.00% 1-3 t/10_4_shared_stop.t 255 65280 4 8 200.00% 1-4 t/10_5_shared_fork.t 8 1 12.50% 6 t/10_6_shared_sim.t 22 5632 7 14 200.00% 1-7 Failed 5/18 test scripts, 72.22% okay. 18/314 subtests failed, 94.27% okay. make: *** [test_dynamic] Error 2 $ PERL_INLINE_JAVA_DEBUG=99 perl -Mblib t/10_2_shared_start.t 1..3 # Running under perl version 5.008006 for darwin # Current time local: Tue Aug 30 22:42:30 2005 # Current time GMT: Tue Aug 30 21:42:30 2005 # Using Test.pm version 1.25 [perl][1] validate done. [perl][1] Starting load. [perl][4] portable: ENV_VAR_PATH_SEP_CP for darwin is default ':' [perl][4] portable: SUB_FIX_JAVA_PATH => /Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/blib/lib/Inline/Java/InlineJavaServer.jar for darwin is default '/Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/blib/lib/Inline/Java/InlineJavaServer.jar' [perl][2] classpath: /Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/blib/lib/Inline/Java/InlineJavaServer.jar [perl][1] starting JVM... [perl][1] client/server mode [perl][4] portable: GOT_ALARM for darwin is default 'define' [perl][1] connected to already running JVM! [perl][2] classpath: [perl][4] portable: SUB_FIX_JAVA_PATH => /Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/blib/lib/Inline/Java/InlineJavaUser.jar for darwin is default '/Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/blib/lib/Inline/Java/InlineJavaUser.jar' [perl][2] adding to classpath: '/Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/blib/lib/Inline/Java/InlineJavaUser.jar' [perl][3] packet sent is add_classpath 47.85.115.101.114.115.47.116.105.109.98.111.47.46.99.112.97.110.47.115.111.117.114.99.101.115.47.97.117.116.104.111.114.115.47.105.100.47.80.47.80.65.47.80.65.84.76.47.73.110.108.105.110.101.45.74.97.118.97.45.48.46.53.48.47.98.108.105.98.47.108.105.98.47.73.110.108.105.110.101.47.74.97.118.97.47.73.110.108.105.110.101.74.97.118.97.85.115.101.114.46.106.97.114 [perl][3] packet recv is ok undef: [perl][3] getting server type [perl][3] packet sent is server_type [perl][3] packet recv is ok scalar:115.104.97.114.101.100 [perl][4] destroying Inline::Java::Protocol [perl][4] portable: ENV_VAR_PATH_SEP_CP for darwin is default ':' [perl][2] classpath candidate '' scraped [perl][4] portable: SUB_FIX_JAVA_PATH => /Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/_Inline_test/lib/auto/t10 for darwin is default '/Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/_Inline_test/lib/auto/t10' [perl][2] adding to classpath: '/Users/timbo/.cpan/sources/authors/id/P/PA/PATL/Inline-Java-0.50/_Inline_test/lib/auto/t10' [perl][3] packet sent is add_classpath 47.85.115.101.114.115.47.116.105.109.98.111.47.46.99.112.97.110.47.115.111.117.114.99.101.115.47.97.117.116.104.111.114.115.47.105.100.47.80.47.80.65.47.80.65.84.76.47.73.110.108.105.110.101.45.74.97.118.97.45.48.46.53.48.47.95.73.110.108.105.110.101.95.116.101.115.116.47.108.105.98.47.97.117.116.111.47.116.49.48 [perl][3] packet recv is ok undef: [perl][3] Inline::Java object id is 0 [perl][1] using jdat cache [perl][5] Dump: $VAR1 = []; [perl][5] Dump: $VAR1 = {}; [perl][1] load done. [perl][4] destroying Inline::Java::Protocol Can't locate object method "new" via package "t10::t10" (perhaps you forgot to load "t10::t10"?) at t/10_2_shared_start.t line 36, <GEN0> line 3. [perl][1] killed by natural death. [perl][1] JVM non-owner exiting... [perl][1] exiting with 255 $ find _Inline_test _Inline_test _Inline_test/build _Inline_test/build/t09 _Inline_test/config _Inline_test/lib _Inline_test/lib/auto _Inline_test/lib/auto/_01_init_t_b433 _Inline_test/lib/auto/_01_init_t_b433/_01_init_t_b433.inl _Inline_test/lib/auto/_01_init_t_b433/_01_init_t_b433.jdat _Inline_test/lib/auto/_01_init_t_b433/types1.class _Inline_test/lib/auto/_02_primitives_t_d3a6 _Inline_test/lib/auto/_02_primitives_t_d3a6/_02_primitives_t_d3a6.inl _Inline_test/lib/auto/_02_primitives_t_d3a6/_02_primitives_t_d3a6.jdat _Inline_test/lib/auto/_02_primitives_t_d3a6/types2.class _Inline_test/lib/auto/_03_objects_t_9f80 _Inline_test/lib/auto/_03_objects_t_9f80/_03_objects_t_9f80.inl _Inline_test/lib/auto/_03_objects_t_9f80/_03_objects_t_9f80.jdat _Inline_test/lib/auto/_03_objects_t_9f80/obj113.class _Inline_test/lib/auto/_03_objects_t_9f80/obj13$inner_obj13.class _Inline_test/lib/auto/_03_objects_t_9f80/obj13.class _Inline_test/lib/auto/_03_objects_t_9f80/obj23.class _Inline_test/lib/auto/_03_objects_t_9f80/types3.class _Inline_test/lib/auto/_04_members_t_17c5 _Inline_test/lib/auto/_04_members_t_17c5/_04_members_t_17c5.inl _Inline_test/lib/auto/_04_members_t_17c5/_04_members_t_17c5.jdat _Inline_test/lib/auto/_04_members_t_17c5/obj14.class _Inline_test/lib/auto/_04_members_t_17c5/types4.class _Inline_test/lib/auto/_05_arrays_t_e8dd _Inline_test/lib/auto/_05_arrays_t_e8dd/_05_arrays_t_e8dd.inl _Inline_test/lib/auto/_05_arrays_t_e8dd/_05_arrays_t_e8dd.jdat _Inline_test/lib/auto/_05_arrays_t_e8dd/types5.class _Inline_test/lib/auto/_06_static_t_18a1 _Inline_test/lib/auto/_06_static_t_18a1/_06_static_t_18a1.inl _Inline_test/lib/auto/_06_static_t_18a1/_06_static_t_18a1.jdat _Inline_test/lib/auto/_06_static_t_18a1/p06 _Inline_test/lib/auto/_06_static_t_18a1/p06/types6.class _Inline_test/lib/auto/_07_polymorph_t_1d94 _Inline_test/lib/auto/_07_polymorph_t_1d94/_07_polymorph_t_1d94.inl _Inline_test/lib/auto/_07_polymorph_t_1d94/_07_polymorph_t_1d94.jdat _Inline_test/lib/auto/_07_polymorph_t_1d94/t17.class _Inline_test/lib/auto/_07_polymorph_t_1d94/t27.class _Inline_test/lib/auto/_07_polymorph_t_1d94/types7.class _Inline_test/lib/auto/_10_1_shared_alone_t_30b3 _Inline_test/lib/auto/_10_1_shared_alone_t_30b3/_10_1_shared_alone_t_30b3.inl _Inline_test/lib/auto/_10_1_shared_alone_t_30b3/_10_1_shared_alone_t_30b3.jdat _Inline_test/lib/auto/_10_1_shared_alone_t_30b3/t10.class _Inline_test/lib/auto/_11_exceptions_t_fd75 _Inline_test/lib/auto/_11_exceptions_t_fd75/_11_exceptions_t_fd75.inl _Inline_test/lib/auto/_11_exceptions_t_fd75/_11_exceptions_t_fd75.jdat _Inline_test/lib/auto/_11_exceptions_t_fd75/t9.class _Inline_test/lib/auto/_12_1_callbacks_t_5f16 _Inline_test/lib/auto/_12_1_callbacks_t_5f16/_12_1_callbacks_t_5f16.inl _Inline_test/lib/auto/_12_1_callbacks_t_5f16/_12_1_callbacks_t_5f16.jdat _Inline_test/lib/auto/_12_1_callbacks_t_5f16/t15$OwnException.class _Inline_test/lib/auto/_12_1_callbacks_t_5f16/t15$OwnThread.class _Inline_test/lib/auto/_12_1_callbacks_t_5f16/t15.class _Inline_test/lib/auto/_13_end_t_0295 _Inline_test/lib/auto/_13_end_t_0295/_13_end_t_0295.inl _Inline_test/lib/auto/_13_end_t_0295/_13_end_t_0295.jdat _Inline_test/lib/auto/study_0295 _Inline_test/lib/auto/study_0295/study_0295.inl _Inline_test/lib/auto/study_0295/study_0295.jdat _Inline_test/lib/auto/study_79ac _Inline_test/lib/auto/study_79ac/study _Inline_test/lib/auto/study_79ac/study/a8.class _Inline_test/lib/auto/study_79ac/study_79ac.inl _Inline_test/lib/auto/study_79ac/study_79ac.jdat _Inline_test/lib/auto/t09 _Inline_test/lib/auto/t09/p1 _Inline_test/lib/auto/t09/p1/p1.inl _Inline_test/lib/auto/t09/p1/p1.jdat _Inline_test/lib/auto/t09/p1/t09p1.class _Inline_test/lib/auto/t09/p2 _Inline_test/lib/auto/t09/p2/p2.inl _Inline_test/lib/auto/t09/p2/p2.jdat _Inline_test/lib/auto/t09/p2/t09p2.class _Inline_test/lib/auto/t09/p3 _Inline_test/lib/auto/t09/p3/p3.inl _Inline_test/lib/auto/t09/p3/p3.jdat _Inline_test/lib/auto/t09/p3/t09p3.class _Inline_test/lib/auto/t10 _Inline_test/lib/auto/t10/t10.class _Inline_test/lib/auto/t10/t10.inl _Inline_test/lib/auto/t10/t10.jdat _Inline_test/lib/auto/toto_0295 _Inline_test/lib/auto/toto_0295/toto_0295.inl _Inline_test/lib/auto/toto_0295/toto_0295.jdat