2013-02-28 6 views
7

Chcę zaimplementować oczekiwane polecenie "interakcję" przy użyciu java. Oczekiwano, że można otworzyć sesję ssh, uwierzytelnić, a następnie użyć polecenia "interakcja", aby przekazać kontrolę użytkownikowi. Czy to możliwe z java? Próbowałem z expectJ, expect4J i expectForJava, ale jest mało dokumentacji i prawie nie ma przykładów, jak to zrobić. TIA.jak zaimplementować, oczekuj polecenia "interakcję" przy użyciu java

Update: dla „interakcji” odwołanie polecenia, proszę to sprawdzić: http://wiki.tcl.tk/3914

„Interact jest polecenie, które daje kontrolę nad bieżącym procesu dla użytkownika, tak aby naciśnięcia klawiszy są wysyłane do Expect bieżący proces , a standardowe i standardowe wyjście z bieżącego procesu są zwracane . "

+0

https://code.google.com/p/expect4j/wiki/Installation może tutaj? –

+0

@SergeyBenner Nie mogłem znaleźć w expect4J, z kodu Java, ktoś może nazwać polecenie "interakcję". Obiekt Expect ma tylko metody "oczekiwać" i "wysłać". expectJ ma jedno jawnie, ale nie działa (lub nie wiem, jak go właściwie używać). –

+0

@DaveJarvis Chciałbym rzucić okiem. Czy napisałeś to od zera, czy używasz jakiejś istniejącej biblioteki? Czy ma funkcję "interakcji"? –

Odpowiedz

1

Jeśli ktoś jest zainteresowany, dodałem obsługę podstawowej pętli interaktywnej do ExpectIt, mojej własnej implementacji Open Source Expect for Java (przepraszam za autopromocję) od wersji 0.8.

Oto example interakcji ze strumienia wejściowego systemu w Java 8:

 try (final Expect expect = new ExpectBuilder() 
       .withInputs(System.in) 
       .build()) { 
      expect.interact() 
        .when(contains("abc")).then(r -> System.out.println("A")) 
        .when(contains("xyz")).then(r -> System.err.println("B")) 
        .until(contains("exit")); 
      System.out.println("DONE!"); 
     } 
     System.in.close(); 
+0

Cześć Alexey - Naprawdę doceniam expectit - obecnie staram się działać interakcyjnie. Co to jest "r" w tym przykładzie? –

+0

@ Jon 'r "jest parametrem funkcji lambda. Spróbuj zagrać z pełnym przykładem: https://github.com/Alexey1Gavrilov/ExpectIt/blob/master/expect-java8/src/main/java/net/sf/expectit/java8/Java8Example.java –

+0

Używam zależność od maven, zawiera nie rozwiązany dla mnie .. dlaczego pomysł? – Udhaya

Powiązane problemy