2013-01-19 13 views
6

Nie mam problemu z używaniem jline, gdy kod jest uruchamiany w ramach idei. Działając z plikiem bat, znaki edycji nie są wysyłane do terminala.JLine działa tylko z IDEA

java -classpath ..\JActor\target\classes;..\JID\target\classes;target\classes;..\slf4j-api-1.7.2.jar;..\slf4j-simple-1.7.2.jar;..\apache-sshd-0.8.0\lib\sshd-core-0.8.0.jar;..\apache-sshd-0.8.0\lib\mina-core-2.0.5.jar;..\apache-sshd-0.8.0\lib\bcprov-jdk15-140.jar;..\jline-2.9.jar;..\joda-time-2.1.jar org.agilewiki.jasocket.sshd.SSHServer %1% 

Sprawdziłem plik jar jline i zawiera on kod źródłowy dla jansi i hawtjni.

+0

Czy twój terminal jest unicoded? –

+0

Używam sshd do obsługi zdalnego dostępu przez PuTTY. Jestem zdezorientowany, że ucieczka od IDEA może zrobić różnicę, chociaż mam wrażenie, że jline spodziewa się interakcji z lokalną maszyną. Ponieważ uruchamiam się z okna poleceń systemu Windows, może to być problem. Jakikolwiek sposób na życie? –

+0

stworzyć środowisko odpowiednie do wykonania IO w takim przypadku –

Odpowiedz

3

Okazuje się, że terminal używany w ramach IDEA, a pole dos są różne. Wymuszanie używania terminala IDEA we wszystkich przypadkach nie działało, ale tak:

consoleReader = new ConsoleReader(in, out, new TerminalSupport(true) {}); 
+1

Ten sam problem występuje podczas uruchamiania z poziomu środowiska Eclipse, a następnie z poziomu Tomcat. Podana poprawka działa, chociaż nadal nie rozumiem, dlaczego chociaż przeglądałem kod JLine2. – kaliatech