【问题标题】:How do I run a Python script from Java without hardcoded file path?如何在没有硬编码文件路径的情况下从 Java 运行 Python 脚本?
【发布时间】:2016-07-08 16:48:09
【问题描述】:

现在我已将绝对文件路径硬编码到我的 Java 程序中,以便可以运行 Python 脚本。但是,当我的程序部署到公司平台上时,这个文件路径就不再正确了。该脚本位于调用它的类的同一目录中,并且该目录结构不会改变。有没有办法只基于它在同一个目录中运行脚本?

【问题讨论】:

  • 你在使用org.python.util.PythonInterpreter吗?
  • 为什么需要绝对路径?如果它在类路径上,那么应该有办法用“./something/script”调用它,这将在你的应用程序被带到的任何地方工作。
  • @CoderinoJavarino scriptPath.exists() 对任何相对路径返回 false,仅对绝对路径返回 true。
  • 不,我没有使用 Jython

标签: java python filepath runtime.exec


【解决方案1】:

您可以使用它返回执行 Java 类的文件路径:

final File path = new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath());

然后您可以使用此path 对象加载当前目录并运行您的 Python 脚本。

【讨论】:

    【解决方案2】:

    在尝试了@Confiqure 的建议后,我发现该路径在我的程序的目录结构中走得太远了。相反,我尝试了:

    String path = new File("").getAbsolutePath + "/my/path/to/script";
    

    new File("").getAbsolutePath 返回了我的应用程序的路径,我从他们那里硬编码了相对路径,因为我知道相对于我自己的应用程序的路径永远不会改变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-26
      • 2018-11-21
      • 2018-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-25
      • 2016-07-22
      相关资源
      最近更新 更多