gpt4 book ai didi

java - 尝试在 Java 中运行多个 python 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 12:17:36 25 4
gpt4 key购买 nike

我有一个名为generate_graphs.py 的Python 脚本,它使用Python 库生成图形。这些图表是我们通过内部数据向客户展示的趋势。

我正在尝试从 Java 运行该脚本,但没有看到它正在运行的任何证据。没有证据表明日志显示它已运行,但我不确定这是否是脚本本身未运行,或者是否是 exec 方法的实现。

作为其进程的一部分,该脚本将数据插入数据库,但没有插入任何内容。但是,当单独从命令行运行脚本命令时,脚本运行得很好。

这是 mkyong.com 使用的执行命令实现:

private String executeCommand(String command) {

StringBuffer output = new StringBuffer();

Process p;
try {
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));

String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n");
}

} catch (Exception e) {
e.printStackTrace();
}

return output.toString();

}

这里的方法总共被调用了大约 40 次,大约每 3 秒调用一次:

/**
* Runs a command to execute the generate_graph python script
*
* @param server_id
*/
public void generateGraph(List<String> list_name, String server_id, String email_addr, String report_str) {

String generate_graph_cmd = "python2.7 generate_graphs.py --l '%s' --server_name '%s' --email_addr '%s' --report_string '%s' --debug";
//We want to remove the lm_ part from the server name
String server_name = server_id.split("_")[1].replace("\'", "");
String list_name_str = "";

for (String name : list_name){
list_name_str += name + ",";
}
//We want to remove the trailing comma left by the above loop
if (list_name_str.length() > 1){
list_name_str = list_name_str.substring(0, list_name_str.length() - 1);
}


generate_graph_cmd = String.format(generate_graph_cmd, list_name_str, server_name, email_addr, report_str);

try {

System.out.println("[Py Output] " + executeCommand(generate_graph_cmd));

} catch (Exception e) {
e.printStackTrace();
}
log.debug("Generating graph with the following parameters:\nserver_id: " + server_id + "\nlist_id: " + list_name.toString());
}

我只在日志中看到输出的 log.debug 部分。我是否调用得太快/不正确?任何帮助将不胜感激,谢谢!

最佳答案

我最终使用了Apache Common's Exec来解决我的问题。

关于java - 尝试在 Java 中运行多个 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39215111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com