用Java程序执行Python编写的Linux文件

2024-04-16 23:32:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是YCSB(雅虎!云服务基准)用于衡量部署在CentOS上的2节点Cassandra(2.0.2)集群的性能。为了使用YCSB加载数据,我执行了以下操作--

bin/ycsb load cassandra -P workloads/cassandraLoadA -s files/load.dat

此行使用属性文件cassandraLoadA,并存储在中生成的YCSB加载.dat。这里ycsb文件是用Python编写的。现在我想从一个Java程序执行上面的命令。我尝试了ProcessBuilderRuntime对象,但失败了。
使用ProcessBuilder对象-

ProcessBuilder builder = new ProcessBuilder("/DIRECTORY_HERE/bin/ycsb","load","cassandra","-P", "workloads/cassandraLoadA","-s","files/load.dat");
Map<String, String> environ = builder.environment();
final Process process = builder.start();

使用运行时对象-

Process p = Runtime.getRuntime().exec("cd /DIRECTORY_HERE/bin/ycsb load cassandra -P workloads/cassandraLoadA -s files/load.dat");
p.waitFor();

问题1:我在这里做错什么了吗?
问题2:如何实现?

谨致问候-
阿维乔伊


Tags: 文件对象binbuilderloadfilesdirectorydat
2条回答

在cd和execution命令之间添加'&;', 试试这个:

Process p = Runtime.getRuntime().exec("cd /DIRECTORY_HERE/bin && ycsb load cassandra -P workloads/cassandraLoadA -s files/load.dat");

p.等待()

希望对你有帮助!你知道吗

尝试将整个命令组合为字符串,然后将其传递给ProcessBuilder

相关问题 更多 >