Archiv verlassen und diese Seite im Standarddesign anzeigen : Telnet via Java
mrasp
12.01.2005, 13:42:03
Hi.
Auch wenn das vielleicht eher in ein Programmierforum gehört: Ich würde mich gerne von einem Java-Programm aus per Telnet auf der Box einloggen. Leider kommt bei mir noch nicht mal die "Login:" Ausgabe...
Martin
String cmd = program + " " + hostname + " " + Integer.toString(port);
System.out.println("Kommando: " + cmd);
Process p = Runtime.getRuntime().exec( cmd );
BufferedReader in = new BufferedReader(
new InputStreamReader( p.getInputStream() )
);
PrintStream os = new PrintStream( p.getOutputStream() );
for ( String s; (s = in.readLine()) != null; )
{
System.out.println( s );
}
gummibaum
12.01.2005, 14:19:53
Moin,
das liegt (ziemlich sicher) daran, dass telnet zur Ein-/Ausgabe nicht stdin/stdout benutzt, sondern direkt die Tastatur liest / auf den Bildschirm schreibt.
Da hilft wohl nur, 'n Telnet-Client in Java zu implementieren bzw. im Web zu suchen.
bis die Tage...
. Mathias
mrasp
14.01.2005, 23:54:18
Ich habe von jakarta.apache.org das commons-net Package heruntergeladen, kann damit per Telnet auf die Box, Befehle absetzen und das Ergebnis auswerten.
Allerdings glaube ich, dass ich irgendwie noch ein Java-Verständnisproblem habe. Die Java-Klassen werden wie folgt (erfolgreich) compiliert:
$ javac -classpath lib/commons-net-1.3.0.jar -O m740/*.java
Beim Starten der Java-Anwendung ohne Classpath kommt wie erwartet der Fehler NoClassDefFoundError:
$ java m740/TelnetTest
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/net/telnet/TelnetClient
at m740.TelnetConnection.<init>(TelnetConnection.java:15)
at m740.TelnetTest.main(TelnetTest.java:42)
Wenn ich nun der JRE den Classpath so übergebe wie beim Compiler, dann findet er plötzlich meine eigene Klasse nicht mehr:
$ java -classpath lib/commons-net-1.3.0.jar m740/TelnetTest
Exception in thread "main" java.lang.NoClassDefFoundError: m740/TelnetTest
Wenn ich die Klassen als jar-Paket zusammenfasse und aufrufe, dann wird die TelnetClient-Klasse ebenfalls nicht gefunden:
$ jar -cfmv m740.jar MANIFEST.MF m740/*.class
$ java -classpath lib/commons-net-1.3.0.jar -jar m740.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/net/telnet/TelnetClient
at m740.TelnetConnection.<init>(TelnetConnection.java:15)
at m740.TelnetTest.main(TelnetTest.java:42)
Das Programm funktioniert nur, wenn ich das commons-net Package mit in meine m740.jar Datei packe oder das commons-net Package im obersten Verzeichnis entpacke ...
Ist doch irgendwie seltsam, oder?
Martin
P.S. Ein reines Programmierforum für spezielle M740-Software wäre vielleicht nicht schlecht...
gummibaum
15.01.2005, 10:24:13
Moin,
java -classpath lib/commons-net-1.3.0.jar m740/TelnetTest(Deine Klasse heißt schließlich m740.TelnetTest)
bis die Tage...
. Mathias
mrasp
15.01.2005, 21:50:01
@gummibaum:
War ein Typo hier im Beitrag... bei mir aufm System hab ich das schon richtig angegeben. Der Fehler kommt aber dennoch:
$ java -classpath lib/commons-net-1.3.0.jar m740/TelnetTest
Exception in thread "main" java.lang.NoClassDefFoundError: m740/TelnetTest
$ ls -la lib/
insgesamt 165
drwxr-xr-x 2 martin martin 88 2005-01-12 18:54 .
drwxr-xr-x 5 martin martin 304 2005-01-15 22:45 ..
-rwx------ 1 martin martin 166679 2004-12-14 19:40 commons-net-1.3.0.jar
$ ls -al m740/
insgesamt 21
drwxr-xr-x 2 martin martin 192 2005-01-15 22:46 .
drwxr-xr-x 5 martin martin 304 2005-01-15 22:45 ..
-rw-r--r-- 1 martin martin 2334 2005-01-15 00:42 TelnetConnection.class
-rw-r--r-- 1 martin martin 4736 2005-01-14 20:25 TelnetConnection.java
-rw-r--r-- 1 martin martin 1458 2005-01-15 00:42 TelnetTest.class
-rw-r--r-- 1 martin martin 1815 2005-01-15 00:57 TelnetTest.java
$ java -classpath lib/commons-net-1.3.0.jar m740/TelnetTest
Exception in thread "main" java.lang.NoClassDefFoundError: m740/TelnetTest
der findet seinen eigenen TelnetTest nicht, einfach zu classpath noch das Verzeichniss des TelnetTest angeben:
$ java -classpath .;lib/commons-net-1.3.0.jar m740/TelnetTest
:eek: :eek: :eek: :eek:
Powered by vBulletin® Version 4.1.9 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.