Java Konsole auslesen

r0X

Grünschnabel
Guten Morgen,

ich arbeite mit einem Java-Programm, welches ich von einem Anbieter über eine Internetseite aufrufe.
Leider ist es nicht möglich, über das Programm selbst, einen Log von ausgeführten Aktionen automatisiert abzurufen/auszugeben.
Jede Aktion wird aber in der Java Konsole ausgegeben.


Meine Frage:
Ist es möglich die Daten, die in der Java Konsole ausgegeben werden auszulesen (evtl. werden die Daten ja irgendwo in einer Datei zwischengespeichert, die man dann auslesen kann? ) um diese dann beispielsweise in PHP nutzen zu können?


Betriebssystem : Windows 7 Pro
Java Version : 1.6.0_21
Java Kenntnisse : 0


Edit: Ist die Frage zu blöd :confused: oder haben die Wissenden am Wochenende was besseres zu tun als mir zu helfen? ;-]:p

Mfg r0X
 
Zuletzt bearbeitet:
Vielen Dank für die Hilfe :rolleyes: ich hab die Antwort inzwischen selbst rausgefunden.
Es ist nicht so, dass ich vorher nicht schon selbst gesucht hätte.. aber für einen Anfänger ist selbst das nicht so leicht zu finden. ;)

Lösung:
Rechtsklick auf das Java Icon unten rechts in der Taskleiste, Systemsteuerung öffnen, Reiter "Erweitert" auswählen, ein Klick auf "Debugging" und dann ein Häkchen bei "Tracing/Protokollierung aktivieren" setzen.

Zu finden ist die Log-Datei in Windows 7 unter:
C:\Users\"Benutzer"\AppData\LocalLow\Sun\Java\Deployment\log


Hinweis: Der Ordner "AppData" ist versteckt. In den Ordneroptionen kann man den Ordner sichtbar machen.

Quelle: http://download.oracle.com/javase/6...loyment/deployment-guide/tracing_logging.html

Mfg r0X
 
Zuletzt bearbeitet:
Hallo,

es gibt mehrere Möglichkeiten die Ausgabe eines Java Konsolen Programms in eine Datei umzuleiten.
Was ist das denn für eine Anwendung? Wie startest du denn diese Anwendung?

Eine Möglichkeit wäre die Umleitung der Konsolenausgabe innerhalb der Konsole selbst:
Code:
C:\development\java\tools\selenium-server-1.0.3>echo Ausgabe ohne Umleitung
Ausgabe ohne Umleitung

C:\development\java\tools\selenium-server-1.0.3>java -jar selenium-server.jar
22:24:23.416 INFO - Java: Sun Microsystems Inc. 17.0-b17
22:24:23.418 INFO - OS: Windows 7 6.1 amd64
22:24:23.427 INFO - v2.0 [a2], with Core v2.0 [a2]
22:24:23.523 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
22:24:23.524 INFO - Version Jetty/5.1.x
22:24:23.525 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
22:24:23.526 INFO - Started HttpContext[/selenium-server,/selenium-server]
22:24:23.527 INFO - Started HttpContext[/,/]
22:24:23.556 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@396fe0f4
22:24:23.556 INFO - Started HttpContext[/wd,/wd]
22:24:23.561 INFO - Started SocketListener on 0.0.0.0:4444
22:24:23.561 INFO - Started org.openqa.jetty.jetty.Server@199a0c7c
22:24:26.531 INFO - Shutting down...

C:\development\java\tools\selenium-server-1.0.3>echo Ausgabe mit Umleitung
Ausgabe mit Umleitung

C:\development\java\tools\selenium-server-1.0.3>java -jar selenium-server.jar >> output.log

C:\development\java\tools\selenium-server-1.0.3>type output.log
22:24:46.085 INFO - Java: Sun Microsystems Inc. 17.0-b17
22:24:46.086 INFO - OS: Windows 7 6.1 amd64
22:24:46.095 INFO - v2.0 [a2], with Core v2.0 [a2]
22:24:46.191 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
22:24:46.192 INFO - Version Jetty/5.1.x
22:24:46.193 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
22:24:46.194 INFO - Started HttpContext[/selenium-server,/selenium-server]
22:24:46.194 INFO - Started HttpContext[/,/]
22:24:46.224 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@6019d0a1
22:24:46.224 INFO - Started HttpContext[/wd,/wd]
22:24:46.229 INFO - Started SocketListener on 0.0.0.0:4444
22:24:46.229 INFO - Started org.openqa.jetty.jetty.Server@199a0c7c
22:24:50.067 INFO - Shutting down...

C:\development\java\tools\selenium-server-1.0.3>

Dabei kann man mit > out.log die Ausgabe in eine neue Datei out.log durchführen (wird überschrieben wenn vorhanden). >> out.log überschreibt nicht sondern hängt an.

Eine weitere Möglichkeit andere die Konsolenanwendung aus Java heraus zu starten und die
StdOut des Prozesses auszulesen (beispielsweise mit einem Scanner).

Gruß Tom
 
Hallo,

danke schonmal für die Antwort!
Die Anwendung starte ich, indem ich mich auf einer Homepage einlogge, daraufhin öffnet sich die Anwendung.

(Edit: ja, war schön blöd mit dem runterladen von selenium und so.. da war ich wohl etwas zu voreilig und hab nicht nachgedacht^^ )

Eine weitere Möglichkeit andere die Konsolenanwendung aus Java heraus zu starten und die
StdOut des Prozesses auszulesen (beispielsweise mit einem Scanner).
Ich denke dass das nicht funktioniert, da ich die Anwendung nicht lokal ausführen kann.


Eine Möglichkeit, den log in realtime mittels Java oder C++ verarbeiten zu können wär natürlich ideal, da ich bestimmte Teile des logs in realtime auf einer Homepage ausgeben möchte. Da sich meine Programmierkenntnisse in dem Bereich in Grenzen halten, wollte ich die log-Datei ununterbrochen über das Änderungsdatum/Zeit auf Updates prüfen, die Datei öffnen und die gewünschten Daten rausfiltern. Anschliessend sollen die Daten dann an den Webserver geschickt werden.
Ich bin noch auf der Suche nach der idealen Lösung. Für Vorschläge wär ich sehr dankbar, wenn das nicht zu weit führt:D

Mfg r0X
 
Zuletzt bearbeitet:
Push

Mit StdOut würde ich es schon gerne mal probieren, allerdings weiss ich nicht wie ich das anstellen soll. Gibt es keine möglichkeit StdOut auf die Anwendung anzuwenden nachdem sie gestartet wurde? Ein automatisierter Login auf der Webseite ist nicht möglich.
 
Zurück