java - 用于启动和配置多个程序的 Python 脚本

标签 java python scripting subprocess python-requests

我有一个想要在本地调试的应用程序。为此,我必须首先运行 Consul (它是一个 jar),然后我必须调用 2 个两个 REST API 方法,因此我调用两个 POST。然后我启动 elasticmq-server 并调用 8 GET

目前,我已在 bat 文件中启动 jar,但这使得它对于 UNIX 毫无用处。我尝试了以下方法:

subprocess.call(['java', '-jar', 'elasticmq-server-0.8.12.jar'], shell=True)

但它没有按我想要的方式工作。我希望双击 script.py 后 jar 在单独的控制台中启动。是否可以?下面我附上最小完整可验证示例:

我的代码

import subprocess
import time, sys
import requests


subprocess.call(['java', '-jar', 'elasticmq-server-0.8.12.jar'], shell=True)
#call("my.bat") - it works on Windows, but not on Linux
time.sleep(5) #elastic must complete launch - it usually takes 1024 milsec, so I w8 5 just in case.
requests.get('http://localhost:8888/?Action=CreateQueue&QueueName=top-secret')
requests.get('http://localhost:8888/?Action=CreateQueue&QueueName=top-secret2')
requests.get('http://localhost:8888/?Action=CreateQueue&QueueName=top-secret3')
requests.post('http://127.0.0.1:7777/some/catalogs/register', data = {"JSON WITH DATA FOR CONSUL")

预期行为

  1. 双击启动脚本。
  2. 在新控制台中启动 consul,
  3. 在新控制台中启动弹性,
  4. 等待 2-5 秒 - 它已经可以工作了。
  5. 调用请求 - 已经可以使用。

最佳答案

我知道事实上,你无法在 Windows 和 Linux 之间移植上述 call 方法。您必须寻找其他解决方案。

关于java - 用于启动和配置多个程序的 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38913256/

相关文章:

java - 如何从linkedList中递归删除一个项目?

python - 分割车牌字符

python - String.count() 返回 0,即使文件中存在单词

python - 如何使用pathlib & csv模块来编写?

linux - For 循环的双重变量扩展

javascript - Indesign 脚本 - 如何获取线程文本框架中的第一段

java - 我的代码不能正常工作? IF 语句多个类

java - 使用 PICK_CONTACT 运行第二种情况

linux - 我正在尝试更改文件名,但脚本给了我错误

java - 在 aspose word 中使用 FieldMergingCallback 时 MS Word 邮件合并字段格式丢失