tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von deepthroat
  • 1 Beitrag von deepthroat
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
765
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Hallo zusammen,

    ich versuche derzeit, mein Projekt (unter Borland JBuilder2007) von Java5 auf Java6 umzustellen.

    Nach reichlich Gefummel mit "unsupported version number [50.0]" fand ich heraus, dass dass ich diesbzgl. meine Obfuscator-Version ProGuard 3.2 updaten musste. Habe nun die Version 4.4 runtergeladen und versucht erneut zu compilieren (mittels ANT und build.xml).
    Nun bekomme ich jede Menge Warnings in dieser Art:
    Code java:
    1
    2
    3
    4
    
    [proguard] Warning: worker.mainApp: can't find referenced class org.apache.log4j.Logger
    [proguard] Warning: xxx.DlgTerminPopUp: can't find referenced class org.apache.log4j.Logger
    ...
    [proguard] Warning: xxx.mainFrm: can't find referenced class edu.virtualschool.jco.JCOSecretKey

    Dabei ist dann irgendwas Schicht im Schacht mit dem Hinweis auf "240 unresolved references to classes or interfaces" und der Bitte, doch diese Warnings erstmal zu korrigieren ..... (was ja eigentlich vernünftig ist und ich eh gemacht hätte)

    In den entsprechenden Sourcen sieht es dann so aus (Beispiel für mainApp) :
    Code java:
    1
    2
    3
    
    import org.apache.log4j.Logger; // manchmal auch "....log4j.*"
    .....
    final Logger log4 = Logger.getLogger( mainApp.class );

    Leider habe ich nun überhaupt keine Idee, was ich hier zu tun habe!
    Der Import funktioniert ja prinzipiell, aber woran stört sich ProGuard hier?

    Ich hoffe, dass irgendwer damit Erfahrung hat ...

    Danke im voraus!
    Gruß
    Klaus
    Geändert von vfl_freak (17.08.11 um 17:04 Uhr) Grund: Anonymisierung
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.
    Zitat Zitat von vfl_freak Beitrag anzeigen
    In den entsprechenden Sourcen sieht es dann so aus (Beispiel für mainApp) :
    Code java:
    1
    2
    3
    
    import org.apache.log4j.Logger; // manchmal auch "....log4j.*"
    .....
    final Logger log4 = Logger.getLogger( mainApp.class );

    Leider habe ich nun überhaupt keine Idee, was ich hier zu tun habe!
    Der Import funktioniert ja prinzipiell, aber woran stört sich ProGuard hier?
    Es findet halt einfach die Klassen nicht. D.h. du hast offenbar die notwendigen Jars nicht als -injars in der Proguard Konfiguration angegeben.

    Gruß
    vfl_freak bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin deepthroat,

    erstmal Danke für die schnell Antwort
    Stimmt, die w_log4j_ant.pro habe ich bislang nicht angefasst ... alleine schon, weil ich mit damit nicht auskenne und leider auch keine Doku dazu besitze

    Es gibt aber schon folgende Einträge :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    ...
    #-libraryjars <java.home>/lib/rt.jar;<java.home>/lib/jsse.jar
    #-injars      w_org.jar
    #-outjar      eseca_nsl_worker_ant.jar
    ...
    #-keep  class org.apache.**
    -keep  class org.apache.log4j.*
    -keep  class net.lamot.java.*
    -keep  class javax.comm.*
    #-keep  class org.apache.log4j.chainsaw.*
    #-keep  class org.apache.log4j.config.*
    #-keep  class org.apache.log4j.helpers.*
    #-keep  class org.apache.log4j.jdbc.*
    #-keep  class org.apache.log4j.lf5.*
    #-keep  class org.apache.log4j.lf5.util.*
    #-keep  class org.apache.log4j.lf5.viewer.*
    #-keep  class org.apache.log4j.lf5.viewer.categoryexplorer.*
    #-keep  class org.apache.log4j.lf5.viewer.configure.*
    #-keep  class org.apache.log4j.net.*
    #-keep  class org.apache.log4j.or.*
    #-keep  class org.apache.log4j.performance.*
    #-keep  class org.apache.log4j.spi.*
    #-keep  class org.apache.log4j.varia.*
    #-keep  class org.apache.log4j.xml.*

    Ich gehe mal davon aus, dass eine # am Zeilenanfang dann diese entspr. Zeile auskommentiert, richtig?
    Was genau machen denn ersten drei Zeilen, falls es kein Kommentar ist
    Was genau macht das '-keep' ?
    Reicht jetzt ggf. sowas wie
    Code :
    1
    
    -injars  <meinPfad>/log4j...jar
    einfügen?

    Danke und Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von vfl_freak Beitrag anzeigen
    Ich gehe mal davon aus, dass eine # am Zeilenanfang dann diese entspr. Zeile auskommentiert, richtig?
    Ja.
    Zitat Zitat von vfl_freak Beitrag anzeigen
    Was genau machen denn ersten drei Zeilen, falls es kein Kommentar ist
    Kann man alles hier (http://proguard.sourceforge.net/manu...html#iooptions) nachlesen.
    Zitat Zitat von vfl_freak Beitrag anzeigen
    Was genau macht das '-keep' ?
    ProGuard schmeißt alle Klassen, Methoden etc. raus, die nicht benutzt werden. Manchmal muß man da eingreifen.
    Zitat Zitat von vfl_freak Beitrag anzeigen
    Reicht jetzt ggf. sowas wie
    Code :
    1
    
    -injars  <meinPfad>/log4j...jar
    einfügen?
    Evlt. benötigst du noch ein paar -keep Optionen oder du gibst -dontshrink an.

    Gruß
    vfl_freak bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  5. #5
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Ah, super! Danke für den Link

    Habe gerade mal parallel den Pfad der log4j-Lib in die build.xml im Target "obfuscate" eingetragen ... und siehe da: statt rund 240 nur noch 54 Warnings von anderen Libs

    Dass scheint dann auf jeden Fall der richtige Weg zu sein!

    Danke für Deine Hilfe resp. den Denkanstoss
    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 20.09.10, 09:50
  2. Ajax und Zusammenspiel Apache, PHP & MySQL
    Von deostift im Forum PHP
    Antworten: 4
    Letzter Beitrag: 27.08.10, 11:37
  3. Antworten: 8
    Letzter Beitrag: 13.02.09, 08:26
  4. Antworten: 0
    Letzter Beitrag: 15.08.07, 13:59
  5. ProGuard - brauche Hilfe
    Von M_Kay im Forum Java
    Antworten: 0
    Letzter Beitrag: 09.07.07, 11:44