I would like to import Java class in Python.
For this class:
SampleJavaClass .java
everything is OK. What I do is:
javac SampleJavaClass .java
java SampleJavaClass (works OK)
then I can access this class in Python, like this:
but:
when my Java class (.java) uses some imports, lets say:
SampleJavaClass .java
then after doing exactly the same thing as in the first case (the same python code) I get the following error:
-----
Traceback (most recent call last):
File "testjava.p y", line 8, in <module>
import SampleJavaClass
File "/usr/lib64/python2.5/ihooks.py", line 407, in import_module
q, tail = self.find_head_ package(parent, str(name))
File "/usr/lib64/python2.5/ihooks.py", line 444, in find_head_packa ge
q = self.import_it( head, qname, parent)
File "/usr/lib64/python2.5/ihooks.py", line 500, in import_it
m = self.loader.loa d_module(fqname , stuff)
File "/usr/local/lib64/python2.5/site-packages/javaclass-0.1-py2.5.egg/javaclass/classhook.py", line 351, in load_module
obj = __import__(exte rnal_module_nam e, global_names, {}, [])
File "/usr/lib64/python2.5/ihooks.py", line 408, in import_module
m = self.load_tail( q, tail)
File "/usr/lib64/python2.5/ihooks.py", line 462, in load_tail
raise ImportError, "No module named " + mname
ImportError: No module named java.sql
-----
Can anyone help me? My CLASSPATH is set and points to the rt.jar, I also tried in python code to sys.path.append (<rt.jar>) but it did not help.
Thank You for any hints.
Marcin
For this class:
SampleJavaClass .java
Code:
public class SampleJavaClass {
public static void main(String args[]) {
System.out.println("Hello world");
}
}
javac SampleJavaClass .java
java SampleJavaClass (works OK)
then I can access this class in Python, like this:
Code:
#!/usr/bin/env python
import javaclass.classhook
import SampleJavaClass
class JavaWrapper(object):
def __init__(self):
pass
def main(self):
hook = SampleJavaClass.SampleJavaClass()
hook.main([])
if __name__ == '__main__':
wrapper = JavaWrapper()
wrapper.main()
when my Java class (.java) uses some imports, lets say:
SampleJavaClass .java
Code:
import java.sql.*;
public class SampleJavaClass {
public static void main(String args[]) {
try {
// just for tests
throw new SQLException();
}
catch(SQLException e) {
System.err.println("Got exception: " + e.getMessage());
}
System.out.println("Hello world");
}
}
-----
Traceback (most recent call last):
File "testjava.p y", line 8, in <module>
import SampleJavaClass
File "/usr/lib64/python2.5/ihooks.py", line 407, in import_module
q, tail = self.find_head_ package(parent, str(name))
File "/usr/lib64/python2.5/ihooks.py", line 444, in find_head_packa ge
q = self.import_it( head, qname, parent)
File "/usr/lib64/python2.5/ihooks.py", line 500, in import_it
m = self.loader.loa d_module(fqname , stuff)
File "/usr/local/lib64/python2.5/site-packages/javaclass-0.1-py2.5.egg/javaclass/classhook.py", line 351, in load_module
obj = __import__(exte rnal_module_nam e, global_names, {}, [])
File "/usr/lib64/python2.5/ihooks.py", line 408, in import_module
m = self.load_tail( q, tail)
File "/usr/lib64/python2.5/ihooks.py", line 462, in load_tail
raise ImportError, "No module named " + mname
ImportError: No module named java.sql
-----
Can anyone help me? My CLASSPATH is set and points to the rt.jar, I also tried in python code to sys.path.append (<rt.jar>) but it did not help.
Thank You for any hints.
Marcin