我正在尝试使用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()));
我需要执行所有这些命令。我该怎么做?
答案 0 :(得分:0)
我认为这里的问题是你遗漏了一些关于cmd
如何运作的重要信息。具体来说,每个cmd
实例都有自己的“当前目录”。所以...
cd
中运行cmd
时,它只影响该实例。runtime.exec("cmd /c start cmd.exe ...
两次时,您将获得两个单独的cmd
个实例,一个接着一个。那么(我认为)你试图在这里做的事情根本行不通。
相反,你应该:
BAT
文件,或者cd
放入您执行的每个cmd
行,或cd
。