Trouble with running java using Popen

Edward Grefenstette egrefen at gmail.com
Tue Jun 23 22:54:10 EDT 2009


Bingo. I was running the python script in GNU script, and it wasn't
loading my bash config file properly. Have fixed it by
altering .screenrc and now the code runs fine. Would have never
guessed to look if you hadn't mentioned it, cheers!

Best,
Ed

On Jun 23, 11:29 pm, "Diez B. Roggisch" <de... at nospam.web.de> wrote:
> Edward Grefenstette schrieb:
>
>
>
> > I have a java prog I need to run at some point during the execution of
> > a python module.
>
> > The path to the folder containing the all the relevant java stuff
> > (which runs fine from the command line) is stored in pkgpath. The
> > relevant code is this:
>
> >>>> os.chdir(pkgpath)
> >>>> arglist = "java -Xmx1024m SemanticVectorsEvaluator ." + indexpath
> >>>> SemVectPackage = Popen(arglist, stdout=PIPE, shell=True)
> >>>> SemVectPackage.wait()
>
> > Here indexpath is the path to a particular index file (usually
> > indexpath = "./indexfolder/fileindex"), so that effectively Popen
> > should be running the equivalent of the shell command:
> > -
> > java -Xmx1024m SemanticVectorsEvaluator ../indexfolder/fileindex
> > -
> > which, again, runs fine in the terminal.
>
> > However running the program returns the following error (echoed from
> > shell, doesn't interrupt prog):
> > -
> > Exception in thread "main" java.lang.NoClassDefFoundError:
> > SemanticVectorsEvaluator
> > -
>
> > I have no idea why this isn't working. Anyone have any suggestions as
> > to how I might troubleshoot this?
>
> I'd say you got an CLASSPATH-issue here. You can add that explicitly via
> env as argument to Popen, or pass it via commandline-args.
>
> Diez




More information about the Python-list mailing list