473,218 Members | 1,379 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,218 software developers and data experts.

possible to pass python objects into java without jython?

Hi,

I have read that this had been asked before but there's no satisfactory
replies then.

I have a module (pA) written in python, which originally is called by
another python module (pB), and passes a python object (pO) to pB. Now I
require pA to be called in a java class (jC) and pass pO into jC. As pA
uses non-python modules, I am not able to use Jython on this.

Are there any way out in this?

Thanks in advance.

Maurice

Jul 18 '05 #1
5 3653
Maurice Ling <ma*********@acm.org> writes:
Hi,

I have read that this had been asked before but there's no
satisfactory replies then.

I have a module (pA) written in python, which originally is called by
another python module (pB), and passes a python object (pO) to pB. Now
I require pA to be called in a java class (jC) and pass pO into jC. As
pA uses non-python modules, I am not able to use Jython on this.

Are there any way out in this?


CORBA.

<mike
--
Mike Meyer <mw*@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
Jul 18 '05 #2
Maurice Ling wrote:
Are there any way out in this?


No.

Jul 18 '05 #3
Maurice Ling wrote:
Hi,

I have read that this had been asked before but there's no satisfactory
replies then.

I have a module (pA) written in python, which originally is called by
another python module (pB), and passes a python object (pO) to pB. Now I
require pA to be called in a java class (jC) and pass pO into jC. As pA
uses non-python modules, I am not able to use Jython on this.

Are there any way out in this?

Thanks in advance.

Maurice


The simple answer is no. The complex answer is maybe, but not without
some work on your part.

As part of JPype I made the opposite : allow Python to use Java classes.
That was easy as python is very dynamic.

Going the other way around .... I don;t see how. The java part must want
to receive a specific Java type. Even if that type is Object (the root
of all object types in Java), tehre is no way for Python object to be
one of those.

Case #1 : the "main" program is in Python, and the Java type to be
received is a Java interface. In that specific case, JPype
(http://jpype.sourceforge.net) can help you. You can "wrap" your pO into
the correct Java type and apss it in.

Otherwise, as has been mantioned before, you will need some kind of
remoting mechanism. Corba might provide a middle ground, or XML-RPC/SOAP.

Good luck.

Steve
Jul 18 '05 #4

The simple answer is no. The complex answer is maybe, but not without
some work on your part.

As part of JPype I made the opposite : allow Python to use Java classes.
That was easy as python is very dynamic.

Going the other way around .... I don;t see how. The java part must want
to receive a specific Java type. Even if that type is Object (the root
of all object types in Java), tehre is no way for Python object to be
one of those.

Case #1 : the "main" program is in Python, and the Java type to be
received is a Java interface. In that specific case, JPype
(http://jpype.sourceforge.net) can help you. You can "wrap" your pO into
the correct Java type and apss it in.

Otherwise, as has been mantioned before, you will need some kind of
remoting mechanism. Corba might provide a middle ground, or XML-RPC/SOAP.

Good luck.

Steve


Hi,

Referring to this scenario again.....

pA.py contains
imports (something non-pure python)
def A(n):
...(does something)...
returns pO

pB.py comtains
import pA
def B(n):
(does something)
x = pA.A(n)
(does more things)

Perhaps if we lax the problem a little and allow Jython to be in
consideration and pB.py is implemented in Jython (as jyB.py), then using
jythonc to convert it into a Java package (jyB.jar containing
jython.jar, jyB.class and jyB$Inner.class). Am I then able to import jyB
in my Java codes? Is it possible to use Jython as the middle ground,
instead of CORBA or SOAP etc etc?

Thanks
Maurice
Jul 18 '05 #5
Maurice LING wrote:

The simple answer is no. The complex answer is maybe, but not without
some work on your part.

As part of JPype I made the opposite : allow Python to use Java
classes. That was easy as python is very dynamic.

Going the other way around .... I don;t see how. The java part must
want to receive a specific Java type. Even if that type is Object (the
root of all object types in Java), tehre is no way for Python object
to be one of those.

Case #1 : the "main" program is in Python, and the Java type to be
received is a Java interface. In that specific case, JPype
(http://jpype.sourceforge.net) can help you. You can "wrap" your pO
into the correct Java type and apss it in.

Otherwise, as has been mantioned before, you will need some kind of
remoting mechanism. Corba might provide a middle ground, or XML-RPC/SOAP.

Good luck.

Steve

Hi,

Referring to this scenario again.....

pA.py contains
imports (something non-pure python)
def A(n):
...(does something)...
returns pO

pB.py comtains
import pA
def B(n):
(does something)
x = pA.A(n)
(does more things)

Perhaps if we lax the problem a little and allow Jython to be in
consideration and pB.py is implemented in Jython (as jyB.py), then using
jythonc to convert it into a Java package (jyB.jar containing
jython.jar, jyB.class and jyB$Inner.class). Am I then able to import jyB
in my Java codes? Is it possible to use Jython as the middle ground,
instead of CORBA or SOAP etc etc?

Thanks
Maurice


Jython has a Java API that allows calling Python code. The simplest way
however would be to turn your pB into a class implementing a given Java
interface. Then java code can easily instantiate your Python class and
use it through the interface.

However the problem remains ... just what kind of object is this pO ?
Using Jython will not magically allow regular Java code to understand
python objects. NAd you still have to bridge between CPython and Jython ...

Steve
Jul 18 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: bezeee | last post by:
At my work we are in the process of building a tool to test an XML based API. Basically, XML in and XML out over http. Currently, there are two engines that do all of the schema validations, xml...
6
by: Dave Benjamin | last post by:
Hey good people, I've been doing a lot of simultaneous Jython and CPython programming lately, and just wanted to say, with no intended ill will toward any of the individuals who have been...
0
by: vincent Salaun | last post by:
hi all, here's my problem : I've embedded a python interpreter in our java application (based on the NetBeans palteforrm) using the Jython API : http://www.jython.org/docs/javadoc/index.html...
13
by: Ajay | last post by:
hi! can you call a Python application from a Java program? does this require any additional package to be installed? thanks cheers
10
by: Maurice Ling | last post by:
Hi, I'm a postgraduate and my project deals with a fair bit of text analysis. I'm looking for some libraries and tools that is geared towards text analysis (and text engineering). So far, the...
4
by: Ramza Brown | last post by:
I know you may frown at my use at java, but this is a pretty simple way to create GUIs quickly, using Java's swing. I have some code for an approach for integrating the swing GUI components and...
2
by: Hal Vaughan | last post by:
I'm self taught and most of what I've been working on for the past several years has been entirely in Perl and Java. I've noticed that I can code about 5 times faster in Perl than Java, in part...
34
by: Anthony Irwin | last post by:
Hi All, I am currently trying to decide between using python or java and have a few quick questions about python that you may be able to help with. #1 Does python have something like javas...
1
isladogs
by: isladogs | last post by:
The next online meeting of the Access Europe User Group will be on Wednesday 6 Dec 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, Mike...
0
by: veera ravala | last post by:
ServiceNow is a powerful cloud-based platform that offers a wide range of services to help organizations manage their workflows, operations, and IT services more efficiently. At its core, ServiceNow...
3
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 3 Jan 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). For other local times, please check World Time Buddy In...
0
by: mar23 | last post by:
Here's the situation. I have a form called frmDiceInventory with subform called subfrmDice. The subform's control source is linked to a query called qryDiceInventory. I've been trying to pick up the...
2
by: jimatqsi | last post by:
The boss wants the word "CONFIDENTIAL" overlaying certain reports. He wants it large, slanted across the page, on every page, very light gray, outlined letters, not block letters. I thought Word Art...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 7 Feb 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:30 (7.30PM). In this month's session, the creator of the excellent VBE...
0
by: stefan129 | last post by:
Hey forum members, I'm exploring options for SSL certificates for multiple domains. Has anyone had experience with multi-domain SSL certificates? Any recommendations on reliable providers or specific...
0
Git
by: egorbl4 | last post by:
Скачал я git, хотел начать настройку, а там вылезло вот это Что это? Что мне с этим делать? ...
1
by: davi5007 | last post by:
Hi, Basically, I am trying to automate a field named TraceabilityNo into a web page from an access form. I've got the serial held in the variable strSearchString. How can I get this into the...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.