IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Jar ne contenant que les classes nécessaires


Sujet :

Java

  1. #21
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Citation Envoyé par hwoarang Voir le message
    Ca marche aussi. Mais pour les plus feignants, il y a des outils qui le font aussi
    certes mais comme je suis lent à la comprenote: le temps de trouver l'outil, de le télécharger, de l'installer, de comprendre comment ça devrait fonctionner .... j'ai eu le temps d'écrire 3 scripts shell ( à mon age on ne se refait pas! )

  2. #22
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Citation Envoyé par pseudocode Voir le message


    Bah, c'est pas le plus dur. C'est du makefile en XML

    En plus, c'est intégré dans Eclipse: Tu colles le contenu dans un fichier "build.xml" à la racine du projet, et depuis Eclipse : clic droit sur "build.xml" -> Run As -> Ant Build.
    Ben... je vais essayer :s

    Citation Envoyé par hwoarang Voir le message
    Tu as essayé de virer cette lib qui n'existe pas et d'ajouter la bonne ? rt.jar du jdk/jre? Ca fait la meme erreur?
    J'ai testé et ça n'a pas marché. J'ai eu les erreurs que j'ai cité précédemment.
    Si quelqu'un sait comment faire ça sous Mac OS X, je suis preneur !
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #23
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Citation Envoyé par professeur shadoko Voir le message
    certes mais comme je suis lent à la comprenote: le temps de trouver l'outil, de le télécharger, de l'installer, de comprendre comment ça devrait fonctionner .... j'ai eu le temps d'écrire 3 scripts shell ( à mon age on ne se refait pas! )
    Pareil pour moi s'il faut regarder comment faire ces makefiles (quoique, j'avoue que tu m'as donné envie de jeter un oeil).


    Citation Envoyé par ToTo13 Voir le message
    J'ai testé et ça n'a pas marché. J'ai eu les erreurs que j'ai cité précédemment.
    Si quelqu'un sait comment faire ça sous Mac OS X, je suis preneur !
    Peut etre que proguard ne marche pas sur mac. En tous cas, sous windows, je n'ai pas eu de probleme. Quand j'ai eu des warnings, ils se sont tous averes reels. Tu as mis quoi comme librairie ? Seulement rt.jar ?

  4. #24
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Citation Envoyé par hwoarang Voir le message
    Tu as mis quoi comme librairie ? Seulement rt.jar ?
    C'est là mon souci, je n'ai pas rt.jar :-(
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #25
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut yGuard pour les nuls
    Bonjour,

    je me suis donc décidé à regarder ce que fait yGuard.
    J'ai commencé par essayer de supprimer tout ce qui est inutile, mais le souci, c'est que ça supprime un peu trop :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <project name="project" default="yguard" basedir=".">
    	<target name="yguard">
    		<taskdef name="yguard" classname="com.yworks.yguard.YGuardTask" classpath="Packages/yguard-2.4/lib/yguard.jar"/>
     
    		<yguard>
    			<inoutpair in="firetiti.jar" out="firetiti_shrinked.jar"/>
    			<shrink>
    				<keep>
    					<class>
    						<patternset>
    							<include name="patternRecognition.textures.glzm.glszm.*"/>
    							<include name="patternRecognition.textures.glzm.glolzm.*"/>
    						</patternset>
    					</class>
    				</keep>
    			</shrink>
    		</yguard>
     
    	</target>
    </project>
    En fait, il ne me reste que les classes les dossiers que j'ai spécifié :-(
    Je voulais lui dire de garder tout ce que ces classes utilisent.
    Quelqu'un pourrait il m'aider svp ?
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #26
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Euh... en fait même les classes sont vides : toutes les méthodes ont été supprimées.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  7. #27
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    je viens de faire des tests et j'arrive aux même résultats. Apparement, soit il garde tout mais vire les annotations / info de debug inutiles. Soit tu lui fait la liste des classes à garder mais il ne guarde que celles là. Il est incapable de faire l'analyse.

    Je viens de lancer ça:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <project name="project" default="yguard" basedir=".">
    	<target depends="jar" name="yguard">
    		<taskdef name="yguard" classname="com.yworks.yguard.YGuardTask" classpath="libs/yguard.jar"/>
     
    		<yguard>
    			<inoutpair in="firetiti.jar" out="firetiti_shrinked.jar"/>
    			<shrink>
    				<keep>
    					<class>
    						<patternset>
    							<include name="mon.paquet.MonMain"/>
    						</patternset>
    					</class>
    				</keep>
    			</shrink>
    		</yguard>
     
    	</target>
        <target name="init">
        <property name="project_name" value="DemoProject"/>
        <property name="srcDir" value="src"/>
        <property name="classDir" value="classes"/>
        <property name="jar" value="firetiti.jar"/>
        <property name="renamelog" value="${project_name}_renamelog.xml"/>
        <property name="shrinklog" value="${project_name}_shrinklog.xml"/>
        <mkdir dir="${classDir}" />
        </target>
        <!-- compile -->
        <target name="compile" depends="init">
          <javac srcdir="${srcDir}" includes="**/*.java"
            destdir="${classDir}">
          </javac>
        </target>
     
        <!-- create .jar -->
        <target name="jar" depends="compile">
          <jar jarfile="${jar}"
            basedir="${classDir}"
            includes="**">
            <manifest>
                <attribute name="Main-Class" value="mon.paquet.MonMain"/>
            </manifest>
          </jar>
        </target>
    </project>

    et tout ce qu'il me guarde, c'est MonMain, sans méthode. Aucune des classes annexe.

    Pour qu'il explore, faut lui filer les méthodes point de départ:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    			<shrink>
    				<keep>
    			        <method name="void main(java.lang.String[])" class="mon.paquet.MonMain" />
    				</keep>
    			</shrink>
    et là j'ai le bon jar qui marche avec les classes inutiles supprimées
    Code txt : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       [shrink] 	size before: 1 KB, size after: 1 KB.
       [shrink] 	removed 1 classes, 2 methods, 0 fields, 0 resources.
       [shrink] 	3 classes remaining of 4 total.

  8. #28
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Merci pour ces précisions, mais malheureusement cela ne fonction pas chez moi :-(

    Raison principale : je n'ai aucune méthode Main dans les classes que je souhaites garder.
    J'ai essayé de modifier le code pour pointer les méthodes principales qui seront appelées, mais apparemment ça ne gère pas les '*' :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <method name="*FillMatrix(*)" class="patternRecognition.textures.glzm.glszm.*"/>
    Et ça ne fonctionne pas
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  9. #29
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    J'ai réussi à faire à peu près ce que je voulais en utilisant ce code :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <project name="project" default="yguard" basedir=".">
    	<target name="yguard">
    		<taskdef name="yguard" classname="com.yworks.yguard.YGuardTask" classpath="../lib/yguard.jar"/>
     
    		<yguard>
    			<inoutpair in="../../../firetiti.jar" out="tmp.jar"/>
    			<shrink>
    				<keep>
    					<class classes="public" methods="public" fields="public">
    						<patternset>
    							<!-- liste des classes à préserver/-->
    						</patternset>
    					</class>
    				</keep>
    			</shrink>
    		</yguard>
     
     
    		<yguard>
    			<inoutpair in="tmp.jar" out="../../../firetiti_lite.jar"/>
    			<rename>
    				<keep>
    					<class classes="public" methods="public" fields="public">
    						<patternset>
    							<!-- liste des classes à préserver/-->
    						</patternset>
    					</class>
    				</keep>
    			</rename>
    		</yguard>
     
    	</target>
    </project>

    Seulement, je dois mettre deux fois exactement la même liste de classes dans les <includes>.
    Y aurait il un moyen de mettre tout cela dans une variable que l'on appellerait où il faudrait ?
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  10. #30
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Seulement, je dois mettre deux fois exactement la même liste de classes dans les <includes>.
    Y aurait il un moyen de mettre tout cela dans une variable que l'on appellerait où il faudrait ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <shrink>
      <keep>
        <class classes="public" methods="public" fields="public">
          <patternset id="myfiles">
            <!-- liste des classes à préserver/-->
          </patternset>
        </class>
    ...
    <rename>
      <keep>
        <class classes="public" methods="public" fields="public">
          <patternset refid="myfiles"/>
        </class>
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #31
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Ca marche super bien !
    Une fois de plus... MERCI
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/10/2012, 16h40
  2. Enum contenant que les lettre alphabetiques
    Par freestyler1982 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 25/08/2010, 22h35
  3. Réponses: 18
    Dernier message: 31/07/2008, 14h51
  4. Réponses: 4
    Dernier message: 07/07/2006, 16h44
  5. [Debutant] probleme pour utiliser les classes d'un .jar
    Par pissek dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 12/05/2004, 19h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo