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

JWS Java Discussion :

Java Web Start problème pour l'écriture dans un fichier


Sujet :

JWS Java

  1. #21
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    le contenu de mon jnlp est le suivant :


    Code : 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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp spec="1.0+" codebase="./" href="Main.jnlp">
        <information>
            <title>Main</title>
            <vendor>moi</vendor>
            <homepage href=""/>
            <description>Main</description>
            <offline-allowed/>
            <shortcut>
                <desktop/>
            </shortcut>
        </information>
    	<security>
    		<all-permissions/>
    	</security>
        <resources>
            <j2se version="1.5+"/>
            <extension name="JavaFX Runtime" href="http://dl.javafx.com/1.2/javafx-rt.jnlp"/>
            <jar href="sMain.jar" main="true"/>
            <jar href="lib/sactivemq-all-5.2.0.jar"/>
            <jar href="lib/sequipment_framework.jar"/>
            <jar href="lib/sjavax.jms.jar"/>
            <jar href="lib/sjms.jar"/>
            <jar href="lib/slog4j-1.2.15.jar"/>
            <jar href="lib/splugins_manager.jar"/>
            <jar href="plugins/splugin.jar"/>
        </resources>
        <application-desc main-class="com.sun.javafx.runtime.main.Main">
            <argument>MainJavaFXScript=com.main.Main</argument>
        </application-desc>
        <update check="background">
    </jnlp>
    Avec "splugin.jar" le jar qui me pose problème

    Quand au résultat de la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jar -t splugin.jar
    je n'ai rien du tout

  2. #22
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Désolé, ma faute. Et
    (sans le moins) ? ca donne quoi?

  3. #23
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par tchize_ Voir le message

    (sans le moins) ? ca donne quoi?
    Bonjour,

    Pareil sans le moins, mon prompt reste toujours bloqué

  4. #24
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par yoyolepsy Voir le message
    Bonjour,

    Pareil sans le moins, mon prompt reste toujours bloqué
    Encore désolé, j'ai oublié le f
    testé et fonctionnel, ca affiche le contenu du jar

  5. #25
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Encore désolé, j'ai oublié le f
    testé et fonctionnel, ça affiche le contenu du jar

    OK merci avec cette commande j'ai bien le listing de toutes les classes de mon jar ainsi que le chemin de mon manifest et de ma signature

    Par contre, n'étant pas bien famillier avec cette commande, est-ce normal que j'obtienne quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    com/
    com/pluginexemple/
    com/pluginexemple/equipment/
    com/pluginexemple/equipment/management_rule/
    com/pluginexemple/equipment/management_rule/ScheduleNOP.class
    com/pluginexemple/equipment/management_rule/ReplyNOP.class
    com/pluginexemple/equipment/
    com/pluginexemple/equipment/PCT.class
    etc...

    Il me liste aussi les package en plus des classes? Désolé si ma question est bête je ne suis pas habitué à ça

  6. #26
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Je vois que le listing affiche deux fois com/pluginexemple/equipment/, et que sous la premier entrée on ne trouve pas ta classe. Pourrais-tu essayer de recréer ton jar depuis 0 (après l'avoir effacé), j'ai l'impression que t'as des entrées de répetroire en double et ça peux poser des problèmes à java lorsqu'il tente d'accéder à un fichier (si il passe par le "mauvais" répertoire, il ne verra pas le fichier)

  7. #27
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Excuse-moi je ne comprends pas très bien ce que tu veux dire avec recréer le jar de 0. Pour créer mon jar sous eclipse, je fait exporter en tant que jar avec mon projet. Est-ce cela que tu me proposes de refaire?

  8. #28
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    tu peux donner le listing complet pour etre sur? PAr recréer de 0, je veux dire l'effacer pour éviter que eclipse ne rajoute les mêmes éléments plusieurs fois au jar.

  9. #29
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    J'ai vérifié dans mon programme, j'ai le listing suivant des classes quand je le lance dans eclipse en application de bureau (pas en jws) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    com.pluginexample.equipment.PCT
     
    com.pluginexample.equipment.Sensor
     
    com.pluginexample.equipment.Gateway
     
    com.pluginexample.equipment.connection.listener.UndecodedMessage
    etc...

    Mon application voit bien apparemment les bonnes classes contenues dans mon jar et elle les retrouvent bien mais plus en jws

  10. #30
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    j'ai demandé la sortie complete de la commande jar que je t'ai donnée. La sortie que tu m'a affichée était tronquée. Des "etc" ne me sont pas très utile.

  11. #31
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Ah d'accord excuse moi j'avais mal lu voila le résultat entier de la commande que tu m'a donnée :


    Code : 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
     
    META-INF/MANIFEST.MF
    META-INF/SIGNATUR.SF
    META-INF/SIGNATUR.DSA
    com/
    com/pluginexample/
    com/pluginexample/equipemnt/
    com/pluginexample/equipemnt/management_rule/
    com/pluginexample/equipemnt/management_rule/ScheduleNOP.class
    com/pluginexample/equipemnt/management_rule/ReplyNOP.class
    com/pluginexample/equipment/
    com/pluginexample/equipment/PCT.class
    com/pluginexample/equipment/Sensor.class
    com/pluginexample/equipment/Gateway.class
    com/pluginexample/equipment/connection/
    com/pluginexample/equipment/connection/listener/
    com/pluginexample/equipment/connection/listener/UndecodedMessage.class
    com/pluginexample/equipment/connection/listener/SingleClientListener.class
    com/pluginexample/equipment/connection/listener/MultiClientsListener.class
    com/pluginexample/equipment/message/
    com/pluginexample/equipment/message/NOP.class
    com/pluginexample/equipment/message/SensorStateNotify.class
    com/pluginexample/equipment/message/SensorStateModify.class
    com/pluginexample/equipment/message/builder/
    com/pluginexample/equipment/message/builder/MessageBuilder.class
    com/pluginexample/equipment/message/builder/MessageService.class
    com/pluginexample/equipment/message/data/
    com/pluginexample/equipment/message/data/MessageDataBuilder.class
    com/pluginexample/equipment/message/data/GetSensConfig.class
    com/pluginexample/equipment/message/data/DoShowStatus.class
    com/pluginexample/equipment/message/data/SetSensConfig.class
    com/pluginexample/equipment/message/data/GetCoord.class
    com/pluginexample/equipment/message/data/DoEcomodeOn.class
    com/pluginexample/equipment/message/data/DoAskStatus.class
    com/pluginexample/equipment/message/data/Parameters$AcknowledgementCode.class
    com/pluginexample/equipment/message/data/Parameters$AddressIdentifier.class
    com/pluginexample/equipment/message/data/Parameters$MessageType.class
    com/pluginexample/equipment/message/data/Parameters$UcmdDoType.class
    com/pluginexample/equipment/message/data/Parameters$UcmdSendAddrType.class
    com/pluginexample/equipment/message/data/Parameters.class
    com/pluginexample/equipment/message/data/DecodedMessage.class
    com/pluginexample/equipment/message/data/MessageData.class
    com/pluginexample/equipment/message/data/GetSensState.class
    com/pluginexample/equipment/message/decoder/
    com/pluginexample/equipment/message/decoder/MessageDecoder.class

  12. #32
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    t'as visiblement oublié de package la classe com.equipment.management_rule.ScheduleManagementRule
    dans ton application webstart
    Citation Envoyé par yoyolepsy Voir le message
    J'ai verifié, toutes mes classes sont là dans mon jar. J'ai même tracé le contenu de mon jar pour bien vérifier que les classes y étaient.
    Manifestement, vu l'output de ton jar, non cette classe n'est pas présente. Rajoute la si tu veux la voir depuis webstart.

  13. #33
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Manifestement, vu l'output de ton jar, non cette classe n'est pas présente. Rajoute la si tu veux la voir depuis webstart.
    Mon jar qui me sert de plugin est "chargé" par mon application principale qui elle contient cette classe dans son jar. Mon plugin contient juste une redéfinition de certaines classes.

    Peut-être alors n'ai je pas bien compris ce que tu voulais me dire par rajouter cette classe?

  14. #34
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Elle est dans quel jar ta classe? Qu'est-ce que tu entends par "chargé" par ton application. Si tu utilsie un classloader custom pour tes plugin, montre nous le code en question sur comment tu "charge" la classe.

  15. #35
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Voila comment je "charge" mon jar et que je récupère les classes :

    Code : 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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    public void loadPlugins() throws Exception {
     
    		this.pluginsDirectory = new File("plugins");
     
    		this._pluginFiles = new ArrayList<String>();
    		this.scanPluginsDirectory(this.pluginsDirectory);
    		this.pluginFiles = new String[this._pluginFiles.size()];
    		this._pluginFiles.toArray(this.pluginFiles);
     
    		if(this.pluginFiles == null || this.pluginFiles.length == 0){
    			return;
    		}
     
    		if(this.equipmentPlugins.size() != 0) return;
     
    		File[] tempFile = new File[this.pluginFiles.length];
    		Enumeration<?> jarEnumeration = null;
    		Class<?> tmpClass = null;
     
     
    		for(int i=0; i<tempFile.length; i++) {
     
    			tempFile[i] = new File(this.pluginFiles[i]);
     
     
    			if(!tempFile[i].exists()) {
    				break;
    			}
     
    			URL url = tempFile[i].toURI().toURL();
     
    			this.loadPluginInClassPath(url);
     
    			URLClassLoader loader = new URLClassLoader(new URL[] {url}, this.getClass().getClassLoader());
    			JarFile jarFile = new JarFile(tempFile[i].getAbsolutePath());
    			jarEnumeration = jarFile.entries();
     
    			while(jarEnumeration.hasMoreElements()) {
     
    				String tmpString = jarEnumeration.nextElement().toString();
     
    				if(tmpString.length() > 6 && tmpString.endsWith(".class")) {
     
    					tmpString = tmpString.substring(0, tmpString.length()-6);
    					tmpString = tmpString.replaceAll("/",".");
    					tmpClass = Class.forName(tmpString, true, loader);
    					if(!tmpClass.isInterface() && !tmpClass.isEnum() && !tmpClass.isAnnotation()) {
     
    						if(tmpClass.getSuperclass().getSimpleName().equals("Equipment")) {
     
    							Equipment tempEquipment = ((Equipment) tmpClass.newInstance()).getNewInstance(this.pluginsManager);
    							tempEquipment.setPluginName(this.addPluginName(this.pluginFiles[i]));
     
    							this.equipmentPlugins.add(tempEquipment);
    						}
    					}
    				}
    			}
     
    			loader = null;
    			jarFile = null;
    		}
    	}
    Voici en plus le stacktrace que j'obtiens dans ma boucle while :

    Code : 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
    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
     
    com.pluginexample.equipment.PCT
     
     
    com.pluginexample.equipment.Sensor
     
     
    com.pluginexample.equipment.Gateway
     
     
    com.pluginexample.equipment.connection.listener.UndecodedMessage
     
     
    com.pluginexample.equipment.connection.listener.PidsSingleClientListener
     
     
    com.pluginexample.equipment.connection.listener.PidsMultiClientsListener
     
     
    com.pluginexample.equipment.message.NOP
     
     
    com.pluginexample.equipment.message.SensorStateNotify
     
     
    com.pluginexample.equipment.message.SensorStateModify
     
     
    com.pluginexample.equipment.message.builder.PidsMessageBuilder
     
     
    com.pluginexample.equipment.message.builder.MessageService
     
     
    com.pluginexample.equipment.message.data.MessageDataBuilder
     
     
    com.pluginexample.equipment.message.data.GetSensConfig
     
     
    com.pluginexample.equipment.message.data.DoShowStatus
     
     
    com.pluginexample.equipment.message.data.SetSensConfig
     
     
    com.pluginexample.equipment.message.data.GetCoord
     
     
    com.pluginexample.equipment.message.data.DoEcomodeOn
     
     
    com.pluginexample.equipment.message.data.DoAskStatus
     
     
    com.pluginexample.equipment.message.data.Parameters$AcknowledgementCode
     
     
    com.pluginexample.equipment.message.data.Parameters$AddressIdentifier
     
     
    com.pluginexample.equipment.message.data.Parameters$MessageType
     
     
    com.pluginexample.equipment.message.data.Parameters$UcmdDoType
     
     
    com.pluginexample.equipment.message.data.Parameters$UcmdSendAddrType
     
     
    com.pluginexample.equipment.message.data.Parameters
     
     
    com.pluginexample.equipment.message.data.DecodedMessage
     
     
    com.pluginexample.equipment.message.data.MessageData
     
     
    com.pluginexample.equipment.message.data.GetSensState
     
     
    com.pluginexample.equipment.message.decoder.PidsMessageDecoder
     
     
    com.pluginexample.equipemnt.management_rule.ScheduleNOP
     
     
    com.pluginexample.equipemnt.management_rule.ReplyNOP
     
     
    com.pluginexample.equipment.PCT
     
     
    com.pluginexample.equipment.Sensor
     
     
    com.pluginexample.equipment.Gateway
     
     
    com.pluginexample.equipment.connection.listener.UndecodedMessage
     
     
    com.pluginexample.equipment.connection.listener.PidsSingleClientListener
     
     
    com.pluginexample.equipment.connection.listener.PidsMultiClientsListener
     
     
    com.pluginexample.equipment.message.NOP
     
     
    com.pluginexample.equipment.message.SensorStateNotify
     
     
    com.pluginexample.equipment.message.SensorStateModify
     
     
    com.pluginexample.equipment.message.builder.PidsMessageBuilder
     
     
    com.pluginexample.equipment.message.builder.MessageService
     
     
    com.pluginexample.equipment.message.data.MessageDataBuilder
     
     
    com.pluginexample.equipment.message.data.GetSensConfig
     
     
    com.pluginexample.equipment.message.data.DoShowStatus
     
     
    com.pluginexample.equipment.message.data.SetSensConfig
     
     
    com.pluginexample.equipment.message.data.GetCoord
     
     
    com.pluginexample.equipment.message.data.DoEcomodeOn
     
     
    com.pluginexample.equipment.message.data.DoAskStatus
     
     
    com.pluginexample.equipment.message.data.Parameters$AcknowledgementCode
     
     
    com.pluginexample.equipment.message.data.Parameters$AddressIdentifier
     
     
    com.pluginexample.equipment.message.data.Parameters$MessageType
     
     
    com.pluginexample.equipment.message.data.Parameters$UcmdDoType
     
     
    com.pluginexample.equipment.message.data.Parameters$UcmdSendAddrType
     
     
    com.pluginexample.equipment.message.data.Parameters
     
     
    com.pluginexample.equipment.message.data.DecodedMessage
     
     
    com.pluginexample.equipment.message.data.MessageData
     
     
    com.pluginexample.equipment.message.data.GetSensState
     
     
    com.pluginexample.equipment.message.decoder.PidsMessageDecoder
     
     
    com.pluginexample.equipemnt.management_rule.ScheduleNOP
     
     
    com.pluginexample.equipemnt.management_rule.ReplyNOP

  16. #36
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu dois remplacer ceci
    par ceci

    En effet, si tu utilise Class.forName, tu va utiliser le classloader qui a chargé ton application principale, alors que si tu fais classloader.forName, tu va utiliser le classloader qui a chargé tes plugins.

    Accessoirement, tu a une manière curieuse de charger tes plugins. D'habitude on met un fichier descripteur du plugin qui contient les noms des classe à instancier pour faire le plugin. Ce fichier peut etre un xml, un fichier properties ou un fichier service, au choix. Et on utilise généralement un interface comme base pour des plugin, pas une classe. Enfin, ta méthode va joyeusement violenter le plugin un initialisant toutes ses classes. Non seulement ca peut prendre du temps, mais il risque de ne pas apprécier. Par exemple, si je fait une classe AbstractPlugin qui étends plugin et que je la met dans mon jar de plugin, ton application va joyeusement essayer de l'instancier alors qu'elle a rien demandé.

    Fait quelques recherche sur ces forums, l'utilisation de classloader et la notion de plugin est abodrée plusieurs fois, tu y trouvera de bonnes idées.

    Et tes File, pour finir, comme ils ne recoivent pas un chemin absolu, il pointenet joyeusement dans le répetoire "par défaut" de javawebstart, répetreoire qui n'a aps de valeur précise et peux changer d'un client à un autre.

  17. #37
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Merci avant tout pour ta réponse. Pourrais-tu si cela t'ai possible me préciser le changement que tu préconises? Je ne connais pas la méthode que tu me proposes pour la classe abstraite ClassLoader. De plus que se passe-t-il pour mes files? Je ne suis pas sur d'avoir compris. Ma façon de définir leurs chemins n'est pas correcte?

    D'avance MERCI.

  18. #38
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Excuse moi j'ai peut-être mal lu ton message c'est peut-être pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ClassLoader.loadClass
    mais plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ClassLoader.forName

  19. #39
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par yoyolepsy Voir le message
    Bonjour,

    Merci avant tout pour ta réponse. Pourrais-tu si cela t'ai possible me préciser le changement que tu préconises? Je ne connais pas la méthode que tu me proposes pour la classe abstraite ClassLoader. De plus que se passe-t-il pour mes files? Je ne suis pas sur d'avoir compris. Ma façon de définir leurs chemins n'est pas correcte?

    D'avance MERCI.


    Cette méthode charge la classe en question en utilisant le classloader. Désolé poour mon post confus, il n'existe pas de méthode forName sur classloader, c'est loadClass qu'il faut utiliser. Pour ce qui est des tes File, j'ai confondu avec un autre post ou je répondais, tes Fichier m'ont l'air correctement récupérés

    Par contre la note sur le fait de charger comme un bourrin toutes les classes du jar .... Elle reste

  20. #40
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    D'accord donc tu me proposes de remplacer la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tmpClass = Class.forName(tmpString, true, loader);
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tmpClass = loader.loadClass(tmpString);
    ?

    Pour ce qui est le chargement des classes de mon plugin jar je repasse le code derrière un collègue et ne suis alors pas maitre de tout le code

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème pour supprimer attribut dans un fichier XML
    Par Jb_One73 dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 19/02/2015, 10h08
  2. JAVA:Retour à la ligne lors d'écriture dans un fichier
    Par sarra2104 dans le forum Langage
    Réponses: 1
    Dernier message: 17/05/2012, 09h10
  3. Eclipse RCP / Java web start : problème de langue
    Par nhqnhq dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 02/12/2009, 18h47
  4. Problème avec Java Web start
    Par kenny6 dans le forum JWS
    Réponses: 6
    Dernier message: 12/09/2007, 17h10
  5. Module java web start pour NB 5.5
    Par FranT dans le forum NetBeans
    Réponses: 3
    Dernier message: 04/10/2006, 14h12

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