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