【问题标题】:Python will not execute Java program: 'java' is not recognizedPython 不会执行 Java 程序:'java' 无法识别
【发布时间】:2015-10-23 02:31:13
【问题描述】:

我正在尝试让 Python 使用在我将其输入命令行时有效的命令来调用 Java 程序。

当我让 Python 尝试使用 subprocess 或 os.system 时,它会说:

'java' 不是内部或外部命令,可操作 程序或批处理文件。

通过搜索,我相信是因为通过Python执行时,它无法像普通命令那样找到java.exe。

【问题讨论】:

标签: python python-2.7 command-line subprocess


【解决方案1】:

您必须将 PATH 变量设置为指向 java 位置。

导入操作系统

os.environ["PATH"] += os.pathsep + os.pathsep.join([java_env])

java_env 将是一个包含 java 目录的字符串。

(在 python 3.7 上测试)

【讨论】:

    【解决方案2】:

    给出java位置的绝对路径
    在我的系统路径中是C:\Program Files\Java\jdk1.8.0_45\bin\java.exe

    【讨论】:

    • 是的,如果成功则尝试使用环境变量解决。
    • 您使用的是哪个操作系统?
    • 首先检查 java 命令是否在 cmd 中工作。如果没问题,那么尝试在 python 中执行 os.getenv('PATH') 它必须返回 java lib 路径。如果一切都好,那么这将是一个复杂的问题
    • @AndyFeely 只是为了确定:您已经引用了该路径中的任何反斜杠,特别是 '\b' 必须写为 '\\b'‽ 并且在使用 shell 时(os.system()subprocessshell=True)您还必须转义空格字符。
    • 如何越过程序文件中的空间?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多