Jython classpath question

  • Thread starter Tennessee James Leeuwenburg
  • Start date
T

Tennessee James Leeuwenburg

Hi all,

Sorry for the newb question, but Googling and FAQing didn't work. Is it
correct that Jython can only access Java classes which are inside JAR
archives in the JYTHON_HOME directory? IT doesn't seem to be documented. I
ask because I want to do groovy prototyping using Jython, and save myself
a lot of coding overhead to try something a little out-of-the-box.

I have a working directory where all my code lives, and because my app is
under rapid development, I would prefer to avoid creating a JAR file every
time I want to do some Python scripting?

What do people suggest I do?

Thanks,
-Tennessee
 
M

Marijan

No it is not true. If you can access your class from java, in jar file
or not, (it has to be in the classpath), you can access it from jython.
I've been playing with jython and java a while ago, but I can remember I
had to do a little trying out, before I figured out how to access some
java class. As far as I can remember you can have more java classes in
one *.class file, so it is possible that you have to write:

import classfilename.classname

or similar, but do not blame me if I am wrong here, as far as I can
remember I had to to some trying out in this direction.

There is also a jython mailing list, and two books about jython.
 
M

Martin Franklin

Hi all,

Sorry for the newb question, but Googling and FAQing didn't work. Is it
correct that Jython can only access Java classes which are inside JAR
archives in the JYTHON_HOME directory? IT doesn't seem to be documented. I
ask because I want to do groovy prototyping using Jython, and save myself
a lot of coding overhead to try something a little out-of-the-box.

No you can import a java .class file. Just make sure it's on the python path
(sys.path) if both .py and .class files are in the same directory then you
need do nothing... if not then you could add the directory containing the
java class files to python sys.path like so:

import sys

sys.path.append("/path/to/java/class/files")


for more information / alternative suggestions look at :-

http://www.jython.org/docs/registry.html

Regards
Martin
 
T

Tennessee James Leeuwenburg

I can now import every class except the one which I would most like to
import.

The fully-qualified classname is au.gov.bom.aifs.dv.dv.
I can import anything else from the au.gob.bom tree, and also other things
from the dv tree such as dv.LayerManager. It's just dv.dv that is causing
hassles.

Are there any pitfalls or required naming conventions that I should be
aware of?

Thanks,
-Tennessee
 
T

Tennessee James Leeuwenburg

Never mind,

It was barfing on a dependant class that wasn't in the classpath. I was
just misreading the error message.

Thanks guys,
-T
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,754
Messages
2,569,527
Members
45,000
Latest member
MurrayKeync

Latest Threads

Top