现在我将绝对文件路径硬编码到我的Java程序中,以便可以运行Python脚本。但是,当我的程序部署到公司的平台上时,此文件路径将不再正确。该脚本位于调用它的类的同一目录中,此目录结构不会更改。有没有办法根据脚本在同一目录中运行脚本?
答案 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
返回了我的应用程序的路径,并从他们硬编码的相对路径,知道相对于我自己的应用程序的路径永远不会改变。