【问题标题】:Run a Java main class using its relative path? (Python)使用其相对路径运行 Java 主类? (Python)
【发布时间】:2012-05-10 22:52:53
【问题描述】:

我正在使用 Python 为指定的 Java 类执行 JVM,如下所示:

import subprocess
output = subprocess.check_output("java MyJavaClass")

但是,Java 类与 Python 脚本不在同一目录中,因此这不起作用。它在bin 目录中,向上两个目录。

所以我希望可以执行以下操作,但它不起作用:

output = subprocess.check_output("java ../../bin/MyJavaClass")

有什么想法吗?

【问题讨论】:

  • 该 Python 代码运行时的工作目录是什么? os.getcwd()

标签: java python subprocess relative-path


【解决方案1】:

你需要设置类路径,像这样:

java -classpath ../../bin MyJavaClass

请注意,如果你的类属于某个包,你必须使用 FQN(Full Qualified Name):

java -classpath ../../bin my.package.MyJavaClass

【讨论】:

    【解决方案2】:

    试试

    output = subprocess.check_output("java MyJavaClass", cwd="../../bin/")
    

    运行Java时,目录结构隐含一个包结构,所以需要从正确的目录执行java(除非使用classpath)。

    【讨论】:

    • 接受了这个答案,因为它在 Python 中保持“目录变化”。不过,这两个答案都很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多