Java 为什么jar文件在使用Python脚本调用后会立即终止?

Java 为什么jar文件在使用Python脚本调用后会立即终止?,java,python,Java,Python,我目前正在编写一个Python脚本,它在用户在输入框中输入的不同目录中打开一个文件。一切运行正常,但我用于测试的jar文件没有运行或显示。我在测试中使用了Shimeji-ee.jar,它的托盘图标一度出现,但立即消失 我尝试在命令提示符下运行它(因为使用脚本调用jar文件类似于在CMD中运行文件),发现它只在CMD窗口打开时运行。几次搜索之后,我发现了一种在CMD中运行文件的方法,即使在关闭CMD后也能保持它的运行。我在脚本中写的,没有错误,但是Shimeji和它的托盘图标不再出现 我在脚本末尾

我目前正在编写一个Python脚本,它在用户在输入框中输入的不同目录中打开一个文件。一切运行正常,但我用于测试的jar文件没有运行或显示。我在测试中使用了Shimeji-ee.jar,它的托盘图标一度出现,但立即消失

我尝试在命令提示符下运行它(因为使用脚本调用jar文件类似于在CMD中运行文件),发现它只在CMD窗口打开时运行。几次搜索之后,我发现了一种在CMD中运行文件的方法,即使在关闭CMD后也能保持它的运行。我在脚本中写的,没有错误,但是Shimeji和它的托盘图标不再出现

我在脚本末尾添加了一行,这也是保持脚本运行的一种有效方法,但它也不起作用(这里可能是另一个错误):

下面是我的脚本中执行调用的代码行:

subprocess.run(['D:', 'cd', PurePath(fileDirectory), 'START', '""', fileToExecute], cwd=os.getcwd(), shell=True)
我学到的代码使文件在后台运行(类似于在Linux终端中添加(&a)):

我一直认为我使用的jar文件可能是问题所在,但我已经好几个小时没有找到任何答案了。代码有什么问题吗?或者我遗漏了什么

更新: 代码在第一个答案后终于运行了,但我收到一个错误,它似乎将文件读取为双正斜杠,如下所示:

# The network path was not found //
subprocess.run(['START', fileToExecute], cwd=PurePath(fileDirectory), shell=True)

我找到的解决方案只是删除了代码中的
“”
部分,这使代码看起来像这样:

# The network path was not found //
subprocess.run(['START', fileToExecute], cwd=PurePath(fileDirectory), shell=True)

问题是您的代码:

subprocess.run(['D:', 'cd', PurePath(fileDirectory), 'START', '""', fileToExecute], cwd=os.getcwd(), shell=True)
使用参数
cd somedirectory START”“fileToExecute
执行命令
D:
,该命令将shell的当前驱动器更改为
D
驱动器,然后终止

你可能想要执行

subprocess.run(['START', '""', fileToExecute], cwd=PurePath(fileDirectory), shell=True)
subprocess.run(['START', '""', fileToExecute], cwd=PurePath(fileDirectory), shell=True)