【发布时间】:2015-05-31 07:28:20
【问题描述】:
我正在尝试使用 subprocess.call() 从 python 脚本运行 java 类:
import os
import subprocess
java_file = os.getcwd() + "/src/ch/idsia/scenarios/Main.java"
if os.path.isfile(java_file):
java_class, _ = os.path.splitext(java_file)
cmd = ['java', java_class]
subprocess.call(cmd, shell=False)
但是运行这个 python 脚本给了我Error: Could not find or load main class .Users.alavin.Code.MarioAI_ver02_April_2011.src.ch.idsia.scenarios.Main。我还为java_class 尝试了以下变体:
"Users.alavin.Code.MarioAI_ver02_April_2011.src.ch.idsia.scenarios.Main"
"src.ch.idsia.scenarios.Main"
python 脚本位于“Users/alavin/Code/MarioAI_ver02_April_2011/”中。 java 类是包“src.ch.idsia.scenarios”中的“Main.java”。 java项目在Eclipse中。
注意事项:mac osx 10.9;蟒蛇2.7;爪哇 1.7;使用 jython 不是一种选择;从终端运行echo $CLASSPATH 会产生一个空行。
提前感谢您的任何帮助/指导。
【问题讨论】:
-
适当设置类路径不是问题吗?
-
阅读什么是类路径。确保
Main.class存在于/Users/alavin/Code/MarioAI_ver02_April_2011/src/ch/idsia/scenarios/ -
@thekashyap
Main.class在/Users/alavin/Code/MarioAI_ver02_April_2011/bin/ch/idsia/scenarios/中。 IE。 'src/' 目录中的.java文件在bin/目录中有它们对应的.class文件。这是个问题吗?
标签: java python subprocess