From: Lloyd S. <lso...@li...> - 2004-03-03 20:23:38
|
[This may get double posted, I first tried to post it before subscribing to list --sorry] Hey, I teach programming at the high school level and we're using python. A local university is hosting a programming contest where the acceptable languages are VB, java and C++. We don't know any of those languages, but the university is still interested in having us participate even if we can't "compete" in the contest. I was wondering if it is possible to use jythonc to compile our python programs which we could then submit to the normal contest judging program in the same manner the "normal" java contestants do. The programs are all of the form: read a datafile, process the data, write an outputfile. So this is the python program I am experimenting with: #test.py def main(): file = open('temp.txt','w') file.write('This is a test') file.close main() Here's what I've done so far (but let me preface this by saying that Jython AND Java are brand new to me, and I'll be leaving out the obviously stupid things I tried so as to make me look smarter). 0) this is under windows XP 1) I downloaded jython, then the sun J2 SDK 2) edited the jython registry file to include the path to javac 3) tried to figure-out from http://www.jython.org/docs/jythonc.html what I needed for options. This wasn't very successful, as I don't know enough about java, but it looked to me like I needed to compile to .class files and so it looked to me like -a -d or -c should work. 4) everything seemed to compile correctly, and when I look in /jpywork I see these three files: test.class test.java test$PyInner.class when I try to run either of the .class files from the command line with: c:/program files/jython21/jpywork>java test.class I get: Exception in thread "main" java.lang.NoClassDefFoundError: org/python/core/PyObject At this point I'm stuck. Can anyone point out what I should be doing instead? Lloyd Sommerer |
From: Geoff G. <ge...@ge...> - 2004-03-03 20:38:28
|
Quoting Lloyd Sommerer (lso...@li...): > > > 0) this is under windows XP > 1) I downloaded jython, then the sun J2 SDK > 2) edited the jython registry file to include the path to javac > 3) tried to figure-out from http://www.jython.org/docs/jythonc.html what I > needed for options. This wasn't very successful, as I don't know enough > about java, but it looked to me like I needed to compile to .class files > and so it looked to me like -a -d or -c should work. > 4) everything seemed to compile correctly, and when I look in /jpywork I > see these three files: > > test.class > test.java > test$PyInner.class > > when I try to run either of the .class files from the command line with: > > c:/program files/jython21/jpywork>java test.class > > I get: Exception in thread "main" java.lang.NoClassDefFoundError: > org/python/core/PyObject > > At this point I'm stuck. Can anyone point out what I should be doing > instead? My personal advice is to package everything as a jar and run the program out of the jar: jythonc -a -j test.jar test.py java -cp test.jar test You've got lots of options at your disposal though. The solution you were employing should work -- you can do: java -cp c:\path\to\jython.jar test And that should work. You've got two problems with the invocation you were trying to use: first, you want to invoke "test" not "test.class"; and second, you need to have the jython internals on your classpath, which you do not. As I said, the easiest way to do this is to pack everything up into a jarfile. It's probably more code than you need but you're still gonna be under a half meg in executable size, and it's really easy to move the jarfile around. It's not so easy to account for the idiosyncracies of differing jython installs. Best of luck (and don't hesitate to ask if you need more help), --G. -- Geoff Gerrietts <geoff at gerrietts net> http://www.gerrietts.net/ "Now, now my good man, this is no time for making enemies." --Voltaire, on his deathbed, when asked to renounce Satan |
From: Sidharth K. <sid...@ho...> - 2004-03-04 11:33:41
|
heres my take. Im must warn you that i havent tryied this out as i dont have jython on my machine. But going by my rudimentery knowledge of java i think it should do it The problem is that java cant find the jython libraries. -try java -classpath [path to the jython libs(basically path to a directory called org] test -alternativly you can set the CLASSPATH environment variable. ps i get my messages in batched mode so i apologise for any inconvenience :-) sid _________________________________________________________________ Post Classifieds on MSN classifieds. http://go.msnserver.com/IN/44045.asp Buy and Sell on MSN Classifieds. |