如何在没有硬编码文件路径的情况下从Java运行Python脚本?

时间:2016-07-08 16:48:10

标签: java python filepath runtime.exec

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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

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

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