2013-04-23 18 views
13

Nie wiem, czy to Scala, czy Play! pytanie. Chcę wykonać polecenie zewnętrzne z mojej aplikacji Play, pobrać dane wyjściowe z polecenia i wyświetlić raport użytkownikowi na podstawie danych wyjściowych polecenia. Czy ktoś może pomóc?Wykonaj zewnętrzne polecenie

Na przykład, gdy wchodzę my-polecenia z muszli pokazuje wyjście jak poniżej, którego chcę, aby uchwycić i pokazać w internecie:

Id Name IP 
==================== 
1  A  x.y.z.a 
2  B  p.q.r.s 

Proszę nie martwić się o format i parsowania wyjście. Funkcjonalnie wyglądam jak PHP exec. Wiem o java Runtime.getRuntime(). Exec ("command"), ale czy jest tam jakaś Scala/Play wersja służyć temu celowi?

Odpowiedz

35

Najpierw należy zaimportować pakiety procesów scala. Metoda: !! robi to, czego potrzebujesz, wykonuje instrukcję i przechwytuje wynik tekstowy.

import scala.sys.process._ 
val cmd = "uname -a" // Your command 
val output = cmd.!! // Captures the output 
+4

[Poręczny link do dokumentacji] (http://www.scala-lang.org/api/2.10.4/#scala.sys.process.package) – BeepDog

7
scala> import scala.sys.process._ 
scala> Process("cat temp.txt")! 

Zakłada się, że w twoim katalogu domowym znajduje się plik tymczasowy. ! służy do faktycznego wykonania polecenia. Zobacz scala.sys.process, aby uzyskać więcej informacji.

+0

Wielkie dzięki, nie mówiłem o klasie Proces. –

Powiązane problemy