执行tableau命令通过java

时间:2014-09-13 21:52:44

标签: java cmd batch-processing

我正在尝试使用Java执行3-7个命令。首先,我需要使用cd更改目录,然后执行命令2)和3)。

1)

Process p = runtime.exec("cmd /c start cmd.exe /C \"cd C:\\Program Files\\Tableau\\Tableau Server\\8.2\\bin");

然后我想写

2)

runtime.exec("cmd /c start cmd.exe /K \tabcmd login -s http://localhost:80 -u c200433 -p venkat@#");

在下面的命令中我从字符串中获取文件名,我可以使用这种格式吗?

3)

runtime.exec("tabcmd publish C:\\Users\\c200433\\Desktop\\Ana\\".getBytes()+filename+" --db-username IIP_RBM_USER --db-password Ytpqxsb9dw".getBytes()));

我需要执行所有这些命令。我该怎么做?

1 个答案:

答案 0 :(得分:0)

我认为这里的问题是你遗漏了一些关于cmd如何运作的重要信息。具体来说,每个cmd实例都有自己的“当前目录”。所以...

  • 当您在cd中运行cmd时,它只影响该实例。
  • 当您运行runtime.exec("cmd /c start cmd.exe ...两次时,您将获得两个单独的cmd个实例,一个接着一个。

那么(我认为)你试图在这里做的事情根本行不通。

相反,你应该:

  • 生成包含整个命令序列的BAT文件,或者
  • cd放入您执行的每个cmd行,或
  • 使用绝对路径名,这样就不会 cd