如何让我的Python(2.5版)脚本在文件夹中运行jar文件,而不是从命令行?

5 投票
2 回答
9422 浏览
提问于 2025-04-11 19:42

我知道可以用 os.system 来从命令行运行命令。不过,我想要在一个特定的文件夹里运行一个 jar 文件,比如我的“test”文件夹。这样做是因为我的 jar 文件(在“test”文件夹里)需要一个在这个文件夹里的文件。那么,我该怎么在我的脚本里写一个函数,来实现这个功能呢?比如说:c:\test>java -jar run_this.jar required_parameter.ext?我还是个 Python 新手,所以希望能详细一点。提前谢谢你们!

2 个回答

1

一般来说:使用 os.chdir 来改变父进程的目录,然后用 os.system 来运行 jar 文件。如果你想保持 Python 的工作目录不变,就需要在运行完后再切换回原来的工作目录,这个原来的目录可以用 os.getcwd() 来记录。

在 Unix 系统上:可以用 os.fork 来创建一个子进程。在父进程中,使用 os.waitpid 来等待子进程完成。在子进程中,先用 os.chdir 切换目录,然后用 os.exec 来运行 java。

8

这里有一个简单的脚本,可以帮助你入门。虽然有很多方法可以让它变得“更好”,但因为我不知道你具体想要实现什么,这个脚本应该已经足够用了。

import os

if __name__ == "__main__":
   startingDir = os.getcwd() # save our current directory
   testDir = "\\test" # note that \ is windows specific, and we have to escape it
   os.chdir(testDir) # change to our test directory
   os.system("java -jar run_this.jar required_paramter.ext")
   os.chdir(startingDir) # change back to where we started

撰写回答