gpt4 book ai didi

java - 调用java类的python子进程错误

转载 作者:行者123 更新时间:2023-11-30 08:54:47 25 4
gpt4 key购买 nike

我正在尝试使用 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 脚本给我 错误:无法找到或加载主类 .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; python 2.7; Java 1.7;使用 jython 不是一种选择;从终端运行 echo $CLASSPATH 会得到一个空行。

预先感谢您提供的任何帮助/指导。

最佳答案

尝试使用 -cp 选项来指定类路径,例如

java -cp /Users/alavin/Code/MarioAI_ver02_April_2011/src/ch/idsia/scenarios Main

所以,

subprocess.call(['java', '-cp', '/Users/alavin/Code/MarioAI_ver02_April_2011/src/ch/idsia/scenarios', 'Main'])

编辑

因为 Main 在包 src.ch.idsia.scenarios 中,请尝试将命令修改为:

subprocess.call(['java', '-cp', '/Users/alavin/Code/MarioAI_ver02_April_2011', 'src.ch.idsia.scenarios.Main'])

关于java - 调用java类的python子进程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29292724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com