Exécuter des commandes tableau Via java


J'essaie d'exécuter 3-7 commandes en utilisant Java. Tout d'abord, je dois changer le répertoire avec cd et exécuter plus tard les commandes 2) et 3).

1)

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

Et puis je veux écrire

2)

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

Et dans la commande ci-dessous, je reçois le nom de fichier à partir d'une chaîne, puis-je utiliser ce format ?

3)

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

J'ai besoin d'exécuter toutes ces commandes. Comment dois-je faire?

Author: user2639663, 2014-09-14

1 answers

Je pense que le problème ici est que vous manquez quelque chose d'important sur la façon dont cmd fonctionne. Plus précisément, chaque instance cmd a son propre "répertoire courant". Si ...

  • Lorsque vous exécutez cd dans un cmd, cela n'affecte que cette instance.
  • Lorsque vous exécutez runtime.exec("cmd /c start cmd.exe ... deux fois, vous obtenez deux cmd instances, l'une après l'autre.

Donc, ce que (je pense) vous essayez de faire ici ne fonctionnera tout simplement pas.

Au lieu de cela, vous devrait:

  • génère un fichier BAT qui contient toute la séquence de commandes, OU
  • mettez un cd dans chaque cmd ligne que vous exécutez, OU
  • utilisez des noms de chemin absolus afin que vous n'ayez pas besoin de pour cd.
 0
Author: Stephen C, 2014-09-14 00:00:02