Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Using Java methods in perl

by hardburn (Abbot)
on Sep 20, 2004 at 18:35 UTC ( [id://392447]=note: print w/replies, xml ) Need Help??


in reply to Using Java methods in perl

I've never used it myself, but I believe Inline::Java is what you're looking for.

"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.

Replies are listed 'Best First'.
Re^2: Using Java methods in perl
by AcidHawk (Vicar) on Sep 20, 2004 at 18:49 UTC
    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.
      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

      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 $@ ; } }

      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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://392447]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (8)
As of 2024-03-28 15:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found