1. #1
    U-Labs Elite

    Registriert seit
    28.10.2011
    Beiträge
    621
    Thanked 276 Times in 168 Posts

    Standard Easy Logger selbst erstellt (eclipse)

    Hier mal ein simples Tutorial, wie man einen wirklich einfachen Logger auf Basis der Standalone-App erstellt.

    1. Erstelle ein Java-Projekt

    2. Erstelle ein libs Ordner

    3. Kopiere die StApp in den libs Ordner und füge alle .jar-Files zum Build-Path des Projektes hinzu
    Code:
          C:\Users\<User>\Knuddels-Stapp\bXXXXX\ > /libs/
    4. Erstelle eine simple Logger-Klasse mit Start-Methode:

    public class KnuddelsLogger extends base.GroupChatStandalone {
    public KnuddelsLogger(String[] arg0, String arg1, int arg2) {
    super(arg0, arg1, arg2);
    }

    public static void main(String[] args) {
    new KnuddelsLogger(args, null, args.length);
    }
    }


    Die Klasse muss von base.GroupChatStandalone erben.
    Im prinzip kann die StApp nun bereits gestartet werden.

    Da wir aber die Pakete mitloggen möchten, müssen wir eine Methode suchen und auch überschreiben. Um die Pakete, die empfangen suchen wir in der Superklasse eine Methode, die folgendes Schema besitzt:
    public boolean <NAME>(String X)
    Da es einige wenige Methoden gibt, die diesem Schema entsprechen, müssen wir einfach herumprobieren und in unserer Logger-Klasse die Methode einfach überschreiben:

    @Override
    public boolean tx(String a) {
    return super.tx(a);
    }


    Um nun mitzuloggen, müssen wir nur das ganze ausgeben:

    @Override
    public boolean tx(String a) {
    System.out.println("[SEND] " + a);
    return super.tx(a);
    }


    Für Profis unter uns können wir das ganze nun noch etwas "formatieren", damit man die Tokens besser sieht - Hierzu benutze ich das mitgelieferte JSON:

    @Override
    public boolean tx(String a) {
    JSONArray j = new JSONArray();

    String[] tokens = a.split("\0");
    for (int i = 0; i < tokens.length; i++) {
    j.add(tokens[i]);
    }
    System.err.println("\n\tSEND: " + JSONArray.toJSONString(j));

    return super.tx(a);
    }


    Voilá, fast fertig!
    Das ganze müssen wir nun auch beim Receiver machen. Da sucht man sich nur die Methode, wo StringTokenizer verwendet werden.

    Und so schaut das ganze dann aus:
    [...]
    ServerSetting changed [chat.knuddels.de:2710/80 => DE]
    JX Starting Browser-Prewarm ...
    Connecting to server ...
    Using Normal Socket
    No version file detected: C:\Users\************\eclipse-workspace\Knuddels Billard-Debug\inst.version

    SEND: ["t","V9.0cab ","https:\/\/www.knuddels.de\/STAPP-null","14","14.0.2 (64bit)","-","62150","OpenJDK 64-Bit Server VM","****************","4076","Oracle Corporation","Windows 10 64bit)","standalone","********","***************** *******"]
    Connection try returned [0] Elapsed: 1462
    UPDATED Protocol 85037142 - 01.11.2020, 18:47:14
    JX-B1 Created new browser view. browserType: JX/HEAVYWEIGHT/persistent, appId: BrowserPrewarm
    JX Browser-Prewarm DONE: 675ms

    SEND: ["k","**","0","**********","*********************** ***********"]
    CONFIRMED Protocol 85037142 - 01.11.2020, 18:47:14
    [...]
    Das ganze wurde getestet mit der Version V9.0cab.

    Extended - Billard Logger
    Hierzu gehen wir in den lib Ordner und öffnen die main.jar mit WinRAR (oder einem ZIP-Programm). Hier löschen wir die BillardManager.class. Zieht die vorher am besten auf den Desktop und decompiliert sie, um die BillardGame-Klasse zu extrahieren.

    Wir erstellen nun im Java-Projekt eine BillardManager-Klasse und erweitern (wie beim Original) die BillardGame-Klasse:

    public class BillardManager extends cyz {

    }


    Wir folgen der BillardGame-Klasse (cyz) und finden das Interface für das Modul-System (onRecieve, destroy, regsiterModule). Hier überschreiben wir nun die Methoden:

    public class BillardManager extends cyz {
    // onReceive
    @Override
    public void j(final StringTokenizer stringTokenizer) {
    JSONArray j = new JSONArray();
    StringBuffer b = new StringBuffer();

    while(stringTokenizer.hasMoreTokens()) {
    String e = (String) stringTokenizer.nextElement();
    j.add(e);
    b.append(e);
    b.append("\0");
    }
    System.err.println("\n\tRECEIVE: " + JSONArray.toJSONString(j));

    super.j(new StringTokenizer(b.toString(), "\0"));
    }

    // send
    public void a(String tokens) {
    this.z.tx(tokens);
    }

    // load Image
    @Override
    public _q r(String paramString) {
    System.out.println("\n\tLoad Image: " + paramString);
    return super.r(paramString);
    }
    }



    P.S. Falls eclipse oder Java wegen irgendwelchen Security-Gedönse meckert, löscht einfach in allen .jar files die MANIFEST!
    Diese enthält nämlich Fingerprints des Builds.

  2. The Following User Says Thank You to Bubble Gum For This Useful Post:

    Manjaro (24.11.2020)

Ähnliche Themen

  1. Win7 Eclipse startet nicht
    Von ElkosMED im Forum Windows
    Antworten: 1
    Letzter Beitrag: 24.01.2014, 12:42
  2. Einführung Java mit Eclipse
    Von Silvatris im Forum Hochsprachen
    Antworten: 7
    Letzter Beitrag: 13.05.2013, 07:32
  3. Vorschau ChaisynoX (Selbst Designed & Selbst gecodete Homepage)
    Von ZarneXxX im Forum Showroom
    Antworten: 0
    Letzter Beitrag: 02.10.2012, 21:05
  4. Win7 Eclipse auf Deutsch ?
    Von IceNet im Forum Windows
    Antworten: 0
    Letzter Beitrag: 29.07.2012, 11:14
  5. Antworten: 2
    Letzter Beitrag: 02.07.2012, 23:06
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192