首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中传递bashscript的参数?

如何在java中传递bashscript的参数?
EN

Stack Overflow用户
提问于 2016-10-16 12:04:18
回答 3查看 230关注 0票数 2

我有后续的命令要通过我的java程序运行;

./kafka-topics.sh --动物园管理员zk1.xx.com:2181,zk2.xx.com:2181,zk3.xx.com:2181 -删除-主题testTopic

我把这个bash脚本叫做;

代码语言:javascript
复制
ProcessBuilder builder = new ProcessBuilder(CConstants.KAFKA_TOPIC_SH);
builder.command("--zookeeper","zk1.xx.com:2181,zk2.xx.com:21811,zk3.xx.com:2181",
                "--delete", "--topic", "testTopic");
        builder.start();

但我会跟随错误;

代码语言:javascript
复制
java.io.IOException: Cannot run program "--zookeeper": error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) ~[?:1.8.0_66]
    at

如何使用参数运行bash脚本?

这里

  • -动物园管理员-delet,e--主题是争论
  • 其他则是这些薪酬的参数。
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-16 13:05:01

调用命令方法时,将重写传递给ProcessBuilder构造函数的命令。构造函数有一个vararg变体,您还可以传递命令参数:

代码语言:javascript
复制
new ProcessBuilder(CConstants.KAFKA_TOPIC_SH, "--zookeeper",
   "zk1.xx.com:2181,zk2.xx.com:21811,zk3.xx.com:2181", "--delete", "--topic",   "testTopic")
   .start();
票数 1
EN

Stack Overflow用户

发布于 2016-10-16 12:14:25

您所得到的错误显示您的第一个参数被解释为命令名。试试这个:

代码语言:javascript
复制
ProcessBuilder builder = new ProcessBuilder();
builder.command(CConstants.KAFKA_TOPIC_SH,"--zookeeper","zk1.xx.com:2181,zk2.xx.com:21811,zk3.xx.com:2181",
                "--delete", "--topic", "testTopic");
        builder.start();
票数 3
EN

Stack Overflow用户

发布于 2016-10-17 03:27:26

您可以直接调用Kafka,而不是将java命令封装到bash脚本中。例如,

String[] options =新String[]{

代码语言:javascript
复制
 "--create",
代码语言:javascript
复制
 "--zookeeper",
代码语言:javascript
复制
 "zk\_host:port",
代码语言:javascript
复制
 "--partitions",
代码语言:javascript
复制
 "1",
代码语言:javascript
复制
 "--topic",
代码语言:javascript
复制
 "test",
代码语言:javascript
复制
 "--replication-factor",
代码语言:javascript
复制
 "1"  };

TopicCommand.main(选项);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40070045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档