http://www.perlmonks.org?node_id=392453


in reply to Re: Using Java methods in perl
in thread Using Java methods in perl

Inline::Java allows you to put Java source code directly "inline" in a Perl script or module.

I have a class file not the source. I could just go a re-write the source but that would take far too long and really defeat my objective, which is to use stuff that I have already got.

Thanks for the thought though.

-----
Of all the things I've lost in my life, its my mind I miss the most.

Replies are listed 'Best First'.
Re^3: Using Java methods in perl
by samtregar (Abbot) on Sep 20, 2004 at 20:19 UTC
    I have a class file not the source.

    No problem, Inline::Java handles that too. Just use the STUDY and AUTOSTUDY options. I'm using Inline::Java to access a 3rd-party vendor's API right now and it's working great.

    -sam

Re^3: Using Java methods in perl
by inman (Curate) on Sep 21, 2004 at 08:12 UTC
    The following code illustrates STUDYing a class with Inline::Java. Other classes encountered when the code is first run are examined courtesy of the AUTOSTUDY statement. The class info is cached so that future execution is quicker.

    #! /usr/bin/perl -w use strict; use warnings; use Data::Dumper; use Inline ( Java => 'STUDY', STUDY => ['com.verity.search.VSearch'], AUTOSTUDY => 1, ); use Inline::Java qw(caught) ; eval { my $search = new com::verity::search::VSearch(); $search->setServerSpec('localhost:9900'); $search->setK2UserName('inman'); $search->setK2Password('xxxxx'); my $ticket = $search->k2Login();; my $colls = $search->collectionsInfo(); my $collCount = $colls->count(); foreach (0..$collCount-1) { my $coll = $colls->at($_); print "Collection: ".$coll->getAlias."\n"; } $search->addCollection ('verity_doccoll'); $search->setQueryText('*'); my $result = $search->getResult(); print "Docs Found: ", $result->{docsFound}; }; if ($@) { if (caught("java.lang.Exception")) { my $msg; $msg = ($@->getMessage()); print "Exception $msg\n"; # prints ouch! } else { # It wasn't a Java exception after all... die $@ ; } }
Re^3: Using Java methods in perl
by hardburn (Abbot) on Sep 20, 2004 at 18:53 UTC

    Instead of copy-and-pasting the source of the orginal class, you could make a simple class that imports the orginal class and dispatches its methods back there.

    "There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.