| |
| |
| h1. Programmatically connect to the console |
| |
| A connection to the Karaf console can also be done programmatically. |
| The following code is a simplified version of the code from the client library. |
| |
| {pygmentize:java} |
| import org.apache.sshd.ClientChannel; |
| import org.apache.sshd.ClientSession; |
| import org.apache.sshd.SshClient; |
| import org.apache.sshd.client.future.ConnectFuture; |
| |
| public class Main { |
| |
| public static void main(String[] args) throws Exception { |
| String host = "localhost"; |
| int port = 8101; |
| String user = "karaf"; |
| String password = "karaf"; |
| |
| SshClient client = null; |
| try { |
| client = SshClient.setUpDefaultClient(); |
| client.start(); |
| ConnectFuture future = client.connect(host, port); |
| future.await(); |
| ClientSession session = future.getSession(); |
| session.authPassword(user, password); |
| ClientChannel channel = session.createChannel("shell"); |
| channel.setIn(System.in); |
| channel.setOut(System.out); |
| channel.setErr(System.err); |
| channel.open(); |
| channel.waitFor(ClientChannel.CLOSED, 0); |
| } catch (Throwable t) { |
| t.printStackTrace(); |
| System.exit(1); |
| } finally { |
| try { |
| client.stop(); |
| } catch (Throwable t) { } |
| } |
| System.exit(0); |
| } |
| |
| } |
| {pygmentize} |
| |
| You can find a more complete example at the [following location|http://svn.apache.org/repos/asf/karaf/trunk/client/src/main/java/org/apache/karaf/client/Main.java]. |
| |
| |
| |