A script that attempts to import some java classes that extend PyObject fails when run in pydev under jython. It runs and import fine without error from jython console. Using latest version of pydev (1.5.1) and jython (2.5.1) on OS X.
The required jar has been added to the pythonpath in project properties as you can see from the console,output.
-- script --
import sys
for p in sys.path: print p
from eu.maxmo.core.data import *
dsIn = PyDataSet(id="test", name="test")
print dsIn.id
--output--
/Users/john/Development/python/maxmo-test/src
/Users/john/Development/python/maxmo-test/src
/Users/john/Development/java/maxmo/maxmo-core/target/maxmo-core.jar
/Users/john/Development/python/jython-2.5.1/Lib
/Users/john/Development/python/jython-2.5.1/Lib/site-packages
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
/System/Library/Java/Extensions/AppleScriptEngine.jar
/System/Library/Java/Extensions/CoreAudio.jar
/System/Library/Java/Extensions/dns_sd.jar
/System/Library/Java/Extensions/j3daudio.jar
/System/Library/Java/Extensions/j3dcore.jar
/System/Library/Java/Extensions/j3dutils.jar
/System/Library/Java/Extensions/jai_codec.jar
/System/Library/Java/Extensions/jai_core.jar
/System/Library/Java/Extensions/mlibwrapper_jai.jar
/System/Library/Java/Extensions/MRJToolkit.jar
/System/Library/Java/Extensions/QTJava.zip
/System/Library/Java/Extensions/vecmath.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/apple_provider.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/dnsns.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/localedata.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/sunjce_provider.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/sunpkcs11.jar
Traceback (most recent call last):
File "/Users/john/Development/python/maxmo-test/src/test-runner.py", line 14, in <module>
from eu.maxmo.core.data import *
ImportError: No module named eu
---
The jar file containing classes to import
Fixed for 1.5.2
Git
%h bead8cc
%ct 1260228528
A nightly should be available with that fix (so, check it tomorrow and see if it works for you).
I no longer get an import error. Thanks.
However, script still bombs with another error that doesn't make sense to me. It seems that the java classes loaded don't have access to core jython classes from inside pydev. As they extend PyObject they need access to these. This happens even if I add jython.jar as a project library as shown below.
-- script --
import sys
for p in sys.path: print p
from eu.maxmo.core.data import PyDataSet, PyTable, PyColumn
dsIn = PyDataSet(id="test", name="test")
print dsIn.id
-- output --
/Users/john/Development/python/maxmo-test/src
/Users/john/Development/python/maxmo-test/src
/Users/john/Development/java/maxmo/maxmo-core/target/maxmo-core.jar
/Users/john/Development/python/jython-2.5.1/jython.jar
/Users/john/Development/python/jython-2.5.1/Lib
/Users/john/Development/python/jython-2.5.1/Lib/site-packages
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar
/System/Library/Java/Extensions/AppleScriptEngine.jar
/System/Library/Java/Extensions/CoreAudio.jar
/System/Library/Java/Extensions/dns_sd.jar
/System/Library/Java/Extensions/j3daudio.jar
/System/Library/Java/Extensions/j3dcore.jar
/System/Library/Java/Extensions/j3dutils.jar
/System/Library/Java/Extensions/jai_codec.jar
/System/Library/Java/Extensions/jai_core.jar
/System/Library/Java/Extensions/mlibwrapper_jai.jar
/System/Library/Java/Extensions/MRJToolkit.jar
/System/Library/Java/Extensions/QTJava.zip
/System/Library/Java/Extensions/vecmath.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/apple_provider.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/dnsns.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/localedata.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/sunjce_provider.jar
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/sunpkcs11.jar
__classpath__
__pyclasspath__/
Traceback (most recent call last):
File "/Users/john/Development/python/maxmo-test/src/test-runner.py", line 14, in <module>
from eu.maxmo.core.data import PyDataSet, PyTable, PyColumn
java.lang.NoClassDefFoundError: org/python/core/PyObject
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:946)
at java.lang.ClassLoader.loadClass(ClassLoader.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at org.python.core.SyspathJavaLoader.loadClass(SyspathJavaLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.python.core.Py.findClassEx(Py.java:817)
at org.python.core.packagecache.SysPackageManager.findClass(SysPackageManager.java:133)
at org.python.core.packagecache.PackageManager.findClass(PackageManager.java:28)
at org.python.core.packagecache.SysPackageManager.findClass(SysPackageManager.java:122)
at org.python.core.PyJavaPackage.__findattr_ex__(PyJavaPackage.java:137)
at org.python.core.PyObject.__findattr__(PyObject.java:869)
at org.python.core.imp.import_name(imp.java:771)
at org.python.core.imp.importName(imp.java:806)
at org.python.core.ImportFunction.__call__(__builtin__.java:1232)
at org.python.core.PyObject.__call__(PyObject.java:367)
at org.python.core.__builtin__.__import__(__builtin__.java:1202)
at org.python.core.imp.importFromAs(imp.java:884)
at org.python.core.imp.importFrom(imp.java:860)
at org.python.pycode._pyx0.f$0(/Users/john/Development/python/maxmo-test/src/test-runner.py:18)
at org.python.pycode._pyx0.call_function(/Users/john/Development/python/maxmo-test/src/test-runner.py)
at org.python.core.PyTableCode.call(PyTableCode.java:165)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runCode(Py.java:1204)
at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:200)
at org.python.util.jython.run(jython.java:246)
at org.python.util.jython.main(jython.java:129)
java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: org/python/core/PyObject