Trouble with running java using Popen

Diez B. Roggisch deets at nospam.web.de
Tue Jun 23 18:29:17 EDT 2009


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