Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Offuscatore Proguard problema

    Ciao, sto utilizzando Proguard per offuscare il codice. Premetto che è la prima volta che lo utilizzo!
    In pratica aggiungo il file jar del programma e le librerie utilizzate, però quando provo a creare il file jar di uscita mi esce fuori il seguente errore

    Warning: javax.swing.JDialog: can't find superclass or interface javax.swing.TransferHandler$HasGetTransferHandler
    Warning: javax.swing.JFrame: can't find superclass or interface javax.swing.TransferHandler$HasGetTransferHandler
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.spec.PBEKeySpec
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.spec.PBEKeySpec
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.SecretKeyFactory
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.SecretKeyFactory
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.spec.PBEParameterSpec
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.spec.PBEParameterSpec
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.SecretKeyFactory
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.spec.PBEKeySpec
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.SecretKeyFactory
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.SecretKey
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.spec.PBEParameterSpec
    Warning: client.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.spec.PBEKeySpec
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.spec.PBEKeySpec
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.SecretKeyFactory
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.SecretKeyFactory
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.spec.PBEParameterSpec
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.spec.PBEParameterSpec
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.SecretKeyFactory
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.spec.PBEKeySpec
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.SecretKeyFactory
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.SecretKey
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.spec.PBEParameterSpec
    Warning: server.dipacam.Asimmetric: can't find referenced class javax.crypto.Cipher
    Warning: there were 2 unresolved references to classes or interfaces.
    You may need to specify additional library jars (using '-libraryjars'),
    or perhaps the '-dontskipnonpubliclibraryclasses' option.
    Warning: there were 38 unresolved references to program class members.
    Your input classes appear to be inconsistent.
    You may need to recompile them and try again.
    Alternatively, you may have to specify the options
    '-dontskipnonpubliclibraryclasses' and/or
    '-dontskipnonpubliclibraryclassmembers'.
    Please correct the above warnings first.


    All'apparenza sembra che non riesce a riconoscere il percorso relativo a javax!! Ma la libreria relativa io l'ho aggiunta correttamente
    C:\Programmi\Java\jre6\lib\rt.jar

    Qualcuno hai idea di quale può essere il problema? Grazie

  2. #2
    penso di aver risolto!! Facendo ignorare all'offuscatore i warning, adesso non mi resta che provare!

  3. #3
    adesso l'offuscatore mi tira fuori il file jar, però quando mando in esecuzione il programma va in errore. Dall'errore il problema è relativo al fatto che utilizzo RMI!
    Nella guida su proGuard ho trovato la seguente:

    Reportedly, the easiest way to handle RMI code is to process the code with ProGuard first and then invoke the rmic tool. If that is not possible, you may want to try something like this:

    -keepattributes Exceptions

    -keep interface * extends java.rmi.Remote {
    <methods>;
    }

    -keep class * implements java.rmi.Remote {
    <init>(java.rmi.activation.ActivationID, java.rmi.MarshalledObject);
    }

    The first -keep option keeps all your Remote interfaces and their methods. The second one keeps all the implementations, along with their particular RMI constructors, if any.

    The Exceptions attribute has to be kept too, because the RMI handling code performs introspection to check whether the method signatures are compatible.

    Ora io sto utilizzando la gui di proGuard, sono andato in Shrinking ed ho spuntato l'opzione:

    RMI interfaces ed RMI implementantions aggiungendo le classi relative!! Ma ugualmente il programma va in errore!!!

    Questo è l'errore:

    17-feb-2009 16.25.26 server.grafica.ServerInitFrame <init>
    GRAVE: null
    java.rmi.server.ExportException: remote object implements illegal remote interface; nested exception is:
    java.lang.IllegalArgumentException: illegal remote method encountered: public abstract boolean interfacce.IDatabase.connetti()
    at sun.rmi.server.UnicastServerRef.exportObject(Unkno wn Source)
    at java.rmi.server.UnicastRemoteObject.exportObject(U nknown Source)
    at java.rmi.server.UnicastRemoteObject.exportObject(U nknown Source)
    at java.rmi.server.UnicastRemoteObject.<init>(Unknown Source)
    at java.rmi.server.UnicastRemoteObject.<init>(Unknown Source)
    at server.dipacam.Database.<init>(Unknown Source)
    at server.dipacam.c.<init>(Unknown Source)
    at server.grafica.ServerInitFrame.<init>(Unknown Source)
    at server.grafica.a.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilter s(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Caused by: java.lang.IllegalArgumentException: illegal remote method encountered: public abstract boolean interfacce.IDatabase.connetti()
    at sun.rmi.server.Util.checkMethod(Unknown Source)
    at sun.rmi.server.Util.getRemoteInterfaces(Unknown Source)
    at sun.rmi.server.Util.getRemoteInterfaces(Unknown Source)
    at sun.rmi.server.Util.createProxy(Unknown Source)
    ... 17 more
    Uncaught error fetching image:
    java.lang.NullPointerException
    at sun.awt.image.URLImageSource.getConnection(Unknown Source)
    at sun.awt.image.URLImageSource.getDecoder(Unknown Source)
    at sun.awt.image.InputStreamImageSource.doFetch(Unkno wn Source)
    at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
    at sun.awt.image.ImageFetcher.run(Unknown Source)

    Qualcuno ha qualche soluzione? Sicuramente sbaglio io in qualcosa perchè non ho mai utilizzato proGuard e questa è la prima volta!

    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.