Java Webstart (JWS) Remote debugging

Nach blöder Rumprobiererei habe ich endlich eine Remote Debugging connection hinbekommen. Hintergrund: Entwicklungsrechner mit Windows, Probleme unter Linux. Der Umstand, dass es sich um ein Webstart-App handelt, macht es noch ein bißchen kniffliger. Nach der Konsultation von einigen Foren und Blogs hab ich es jetzt geschafft: Auf dem Linuxrechner läuft die JVM im Debug-Modus und mit dem unter Windows installierten Eclipse kann ich (fast) debuggen, als wäre es eine aus Eclipse gestartete Anwendung. Voraussetzung ist natürlich, dass man den Sourcecode zur Verfügung hat. Reverse-Engineering mittels JODE funktioniert nur teilweise sauber. Ein weiterer -leider einschneidender- Nachteil ist der, dass die Variablenwerte nicht auslesbar sind. Es ist also sinnvoll, den Code mit entsprechend vielen Log-Statements zu instrumentieren, die über die Java-Konsole ausgelesen werden können.

Mein Vorgehen:

1. Die VM muss mit bestimmten Flags gestartet werden. Dazu bietet sich die Umgebungsvariable JAVAWS_VM_ARGS an. Funktioniert hat es mit folgenden Parametern:

-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888

Diese Konfiguration führt dazu, dass die VM auf Port 8888 hört. Firewalls sind ggf. auszuschalten bzw. zu konfigurieren. In einigen Foren habe ich gelesen, man müsse noch einen Servernamen angeben, wenn es sich nicht um localhost handelt. Das stimmt nicht.

2. Dann habe ich mir die bei einem vorherigen Start heruntergeladene JNLP-Datei geschnappt und lokal gestartet: javaws xxx.jnlp. Die Konsolenausgaben geben ein gewisses Feedback, ob alles geklappt hat. Unter Windows ging das bei mir übrigens nicht. Da meckert er, er könne die Main-Class nicht finden. Warum? Keine Ahnung… U.U. muss die JNLP-Datei noch ein bißchen überarbeitet werden.

3. Zum Test auf dem Linux-Rechner den Debugger starten: jdb -attach localhost:8888. Hier ist es wichtig, den Servernamen mitanzugeben, sogar wenn es sich um localhost handelt. Gelingt ein Connect ist alles in Butter. Gelingt er nicht: Viel Spass beim Wühlen im Netz.

4. Im Eclipse auf dem Windows-Rechner: Findet sich im, über “Debug…” geöffneten Menü im linken Teil ein Eintrag: “Remote Java Application”. Davon eine neue anlegen. Im Dialog den Port (8888) angeben und den Linux-Rechner eintragen (bei mir tat es nur die IP-Adresse). Projekt auswählen, Connection Type “Standard (Socket Attach)”. Alle anderen Einstellungen sind okay.

5. Bei gestarteter Linux-VM diese Konfiguration starten und fertig ist die Kiste. Es läßt sich debuggen wie gewohnt.

Delikate Geburtstagstafel

Anläßlich von Chaos-Command-Königs Geburtstag findet just in diesen Stunden ein oppulentes Long-time-Fratzeln in seinen mainzer Gemächern statt.

Das Menü ist folgernmaßen bestückt:

  1. Hungertreiber (Aperitif): Guacumole an Knusperstangen- Brot
  2. Einstieg (Antipasti): Überbackene Aubergine
  3. Grundlagen (Starter):Hähnchen-Stix mit gebumsten Erdnüssen
  4. Eskalation (Zwischengericht): Gnocchi-Roquefort-Bombe an Tomatenjus
  5. Segnung (Hauptspeise):Penne mit Rindfleischstreifen und Pfifferlingen
  6. Abgang (Dessert): Johanniscrepes mit Minze und Nektarinen
  1. Guacamole:

    man kaufe drei reife Avocados, eine Zwiebel, zwei große Tomaten, min. drei Knoblauchzehen (und als Variationsmöglichkeit noch schönen, bröckeligen Feta). Man schneide zunächst die Zwiebeln klein und gebe dann die Knoblauchzehen durch die Knoblauchpresse hinzu. Anschließend löffle man die Avocados aus und zerdrücke dat Janze auf den Zwiebeln und dem Konblauch, bis es eine schöne, cremige Masse ergibt. Zum Schluss werden noch die klein geschnittenen Tomaten und der Feta (oder auch nicht) untergerührt und alles mit Pfeffer und Salz gewürzt. Fertig! Zum servieren stelle man die Schüssel in die Mitte eines Tisches, mit einer Schale oder einem Teller mit Chips, Nachos oder Brotscheiben. Nachdem sich dann die “sich mässten wollende Menge” um den Tisch versammelt hat, zähle man den Countdown und bei 0, wird die Schüssel nicht mehr sichtbar sein. In den nächsten Sekunden wird die Luft von Mmh-Geräuschen erfüllt sein und nach 2:28 Minuten ist in der Mitte des Tisches nur noch eine sauber geleckte Schüssel vorzufinden. Dass bedeutet: Die Guacamole war genauso wie sie sein sollte. So war es jedenfalls bei uns heute abend. Mmh…..

  2. Auberginenscheiben mit Tomate und Mozarella:

    Zu Beginn aus Olivenöl, Balsamiko und Kräutern eine Marinade herstellen. Nun eine mit wenig Olivenöl ausgestrichene Reine oder ein Blech mit Auberginenscheiben belegen. Diese leicht salzen und mit der Marinade beträufeln. Nun mit Tomatenscheiben bedecken, diese abermals mit der Marinade beträufeln und die Reine in den Ofen schieben. Nach etwas 10 Minuten den in Scheiben geschnittenen Mozarella auf die Tomatenscheiben legen und nochmals 3-4 Minuten in den Ofen schieben. Wenn die Auberginen garr sind das ganze aus dem Ofen nehmen und mit Basilikumblättern garniert servieren.

  3. Hühnchenspieße an gebummsten Erdnüssen:

    Zu den Spießen: In einer kleinen Pfanne 1x Tl. Koriandersamen + 1x Tl. Kuminsamen (Kreuzkümmel) ohne Öl in der Pfanne erhitzen. Anschließend mit Mörser handbumsen. In einer Schüssel 2x El. helle Sojasauce, 1x Tl. Salz, 4 El. Öl, 1x El. Thai-Currypulver, 1x El. Kurkurma, 8x El. Kokosnussmilch, 3x El. Zucker vermengen. Fleisch in dünne Streifen schneiden und in der vorher angerührten Paste marinieren (Matsche acht Studen ziehen lassen). Anstatt wie gewohnt Holzstäbchen zu nutzen, nimmt man Zitronengrassstengel als Aufspießer.

    Zur Erdnusssauce: 2x El. Öl in einer Pfanner erhitzen. Drei gehackte Knoblauchzehen und 1x Tl. rote Currypaste anbraten und mit 8x El. Kokosnussmilch ablöschen. Danach 225 ml Hühnerbrühe dazu gießen, 1x El. Zucker, 1x Tl. Salz, 1x El. Limettensaft, halbe Packung gebumste salzige Erdnüsse. Fürs fein Tuning empfehlen Dana und Thomas Minze, Thai-Basilikum und Koriander. Bewerteung 1. Bon Appétit!

    Hühnchenspieße

  4. Gnocchi an Tomaten-Roquefort-Sauce:

    500g sehr reife, kräftig schmeckende Tomaten blanchieren und anschließend schälen, entkernen und kleinschneiden. Eine Frühlingszwiebel fein schneiden, in Olivenöl anbraten und die Tomaten dazugeben. Bei kleiner Flamme 20-30 Minuten kochen lassen bis eine sämige Tomatensauce entsteht. In der Zwischenzeit können die Gnocchi zubereitet werden. Wenn die Tomatensauce fertig ist den in kleine Würfel geschnittenen Roquefort (ca. 100 Gramm?) in diese hineingeben und locker unterrühren. Mit Pfeffer abschmecken und einen kleinen Schuss Rotwein hinzugeben. Eine Prise Chilli könnte auch nicht schaden. Fertig ist der Spass. Zum Garnieren bietet sich frische Petersilie an.

Die Timeline

17:30 Einkaufen erste Runde: Alnatura (Hühnchenfleisch, Wein, Aubergine und so), Asiate (Thai-Basil, Kokosmilch, Koreander)

18:10 Minze und Petersilie beim Türken. Alnatura-Tüte stehen gelassen.

18:20 Zuhause. Eier irgendwie nicht da. Und andere Sachen. Zum Türken gerannt, Tüte gefunden, Rückweg. Theo und Anna warten vor der Tür.

18:30 Saugen und Aufräumen, Theo und Anna spülen

18:45 Der Bonner Mob kommt

19:15 Einkaufen zweite Runde: Rewe (alles mögliche und Alkoholika), Rewe (Roquefort, Basilikum)

20:15 Hühnchenfleisch in Marinade einlegen, Rindfleisch mit Basilikum und Knoblauch

20:30 Aubergine fertigmachen

20:50 erste Runde Auberginen im Ofen

21:00 Guacuamole-Schlacht

21:15 Auberginen

21:40 Mehr Auberginen

21:50 Kaczyński ist doof

22:30 Hühnchenspieße deluxe!!

23:00 Nach den Hühnchenspießen tritt allgemeines Sättigungsgefühl und erste Alkoholisierung ein. Mit Barbara taucht ein neunter Mitesser auf.

00:21 Die Gnocchi-Bombe explodiert… Wird jemand noch irgendetwas in den nächsten 24 Stunden essen können?

00:37 Die Bombe ist eingeschlagen. Erst Kampf um jede einzelne Gnocchi, dann schnelle Verstopfung, abgeschlossen von DDR-Solidatirät; jeder teilt mit jedem.

01:15 Erste Runde Mokka wird gereicht. Dazu mehr oder weniger viel Halva.

02:23 Aufbruch zum Verdauungsspaziergang…

Einfache Passwörter sind schön…

Arrrgh. Heute mal zur Abwechslung den vergammelt Mac hochgefahren. Der wollte doch tatsächlich ein Passwort zum Zweck der Software-Aktualisierung haben. Leider kannte ich dieses nicht und hatte natürlich auch keine administrativen Rechte. Eine kurze Recherche im WWW führte mich schnell zu diesem Mac OS Brute Force Tool namens MHW – Macintosh Hacker’s Workshop. Derzeit aktuell in der Version 1.1.

Nach der Installation versuchte ich zuerst den Wordlist-Modus. Die Maustaste war noch nicht zurückgeschnellt vom Klick auf den Go-Button, da blinkte auch schon das gesuchte Passwort auf: anna. Quasi das MySpace-Syndrom. Über diese Sünde muss man wohl nicht weiter reden… mir konnte es nur recht und billig sein.