Microsoft semble reconnaître que Java permet de développer plus
rapidement que C# et qu'il y a moins de failles de sécurité dans Java
que dans .net :
http://dsi.silicon.fr/nouveautes/microsoft-java-forever%E2%80%A6-1366
Oui. Pour le cas que j'ai cité en exemple, n est de l'ordre de 800, et chacune de ces options est nécessaire, pour des raisons diverses (licence, taille du code, incompatibilité mutuelles, etc.).
On en revient donc au point de départ : si je veux intégrer ta librairie à mon programme, j'ai un parcours du combattant qui m'attend avant d'espérer commencer à faire mon vrai boulot (à savoir faire le programme pour mon client, pas me battre avec une librairie dont ce n'est pas mon métier).
Idem si en cours de route mon client souhaite ajouter de nouvelles fonctions. Je dois me retaper le parcours du combattant pour recompiler la librairie pour y ajouter les fonctionnalités adéquates, ce qui signifie aussi repasser l'intégralité des tests de la version précédente à la recherche d'effets de bord potentiels, alors que j'ai touché pour le moment à aucune ligne de mon code.
En bref, vous faites du code Kleenex, avec des méthodes de dev laborieuses et coûteuses !
- -- Aeris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Oui. Pour le cas que j'ai cité en exemple, n est de l'ordre de 800, et
chacune de ces options est nécessaire, pour des raisons diverses (licence,
taille du code, incompatibilité mutuelles, etc.).
On en revient donc au point de départ : si je veux intégrer ta librairie
à mon programme, j'ai un parcours du combattant qui m'attend avant
d'espérer commencer à faire mon vrai boulot (à savoir faire le programme
pour mon client, pas me battre avec une librairie dont ce n'est pas mon
métier).
Idem si en cours de route mon client souhaite ajouter de nouvelles
fonctions. Je dois me retaper le parcours du combattant pour recompiler
la librairie pour y ajouter les fonctionnalités adéquates, ce qui
signifie aussi repasser l'intégralité des tests de la version précédente
à la recherche d'effets de bord potentiels, alors que j'ai touché pour
le moment à aucune ligne de mon code.
En bref, vous faites du code Kleenex, avec des méthodes de dev
laborieuses et coûteuses !
- --
Aeris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Oui. Pour le cas que j'ai cité en exemple, n est de l'ordre de 800, et chacune de ces options est nécessaire, pour des raisons diverses (licence, taille du code, incompatibilité mutuelles, etc.).
On en revient donc au point de départ : si je veux intégrer ta librairie à mon programme, j'ai un parcours du combattant qui m'attend avant d'espérer commencer à faire mon vrai boulot (à savoir faire le programme pour mon client, pas me battre avec une librairie dont ce n'est pas mon métier).
Idem si en cours de route mon client souhaite ajouter de nouvelles fonctions. Je dois me retaper le parcours du combattant pour recompiler la librairie pour y ajouter les fonctionnalités adéquates, ce qui signifie aussi repasser l'intégralité des tests de la version précédente à la recherche d'effets de bord potentiels, alors que j'ai touché pour le moment à aucune ligne de mon code.
En bref, vous faites du code Kleenex, avec des méthodes de dev laborieuses et coûteuses !
- -- Aeris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Ça fonctionne out-of-the-box à partir du moment où tu as un accès à Internet à la 1ère exécution. Après par un mécanisme de caches, tout est en local chez toi.
Cela fonctionne aussi sans Internet à la condition de mettre en place des proxies Maven type Nexus, Archiva ou Artifactory. Et idem que plus haut, après la 1ère exec, tout est en cache local chez toi et tu peux travailler hors ligne.
- -- Aeris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Ça fonctionne out-of-the-box à partir du moment où tu as un accès à
Internet à la 1ère exécution.
Après par un mécanisme de caches, tout est en local chez toi.
Cela fonctionne aussi sans Internet à la condition de mettre en place
des proxies Maven type Nexus, Archiva ou Artifactory.
Et idem que plus haut, après la 1ère exec, tout est en cache local chez
toi et tu peux travailler hors ligne.
- --
Aeris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Ça fonctionne out-of-the-box à partir du moment où tu as un accès à Internet à la 1ère exécution. Après par un mécanisme de caches, tout est en local chez toi.
Cela fonctionne aussi sans Internet à la condition de mettre en place des proxies Maven type Nexus, Archiva ou Artifactory. Et idem que plus haut, après la 1ère exec, tout est en cache local chez toi et tu peux travailler hors ligne.
- -- Aeris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Aéris , dans le message <4dfd0f5f$0$23732$, a écrit :
On en revient donc au point de départ : si je veux intégrer ta librairie à mon programme, j'ai un parcours du combattant qui m'attend avant d'espérer commencer à faire mon vrai boulot (à savoir faire le programme pour mon client, pas me battre avec une librairie dont ce n'est pas mon métier).
Non : dans la plupart des cas, il te suffit d'installer le paquet de développement qui vient avec ta distribution.
La différence, c'est quand tu sors des sentiers battus, et que ce paquet de développement générique ne convient pas. Avec le modèle libre modulaire au niveau source, il suffit de recompiler comme tu l'entends, ce qui peut d'ailleurs parfaitement être optimisé.
Avec ton modèle, tu ne peux rien faire, c'est coincé.
Aéris , dans le message <4dfd0f5f$0$23732$426a74cc@news.free.fr>, a
écrit :
On en revient donc au point de départ : si je veux intégrer ta librairie
à mon programme, j'ai un parcours du combattant qui m'attend avant
d'espérer commencer à faire mon vrai boulot (à savoir faire le programme
pour mon client, pas me battre avec une librairie dont ce n'est pas mon
métier).
Non : dans la plupart des cas, il te suffit d'installer le paquet de
développement qui vient avec ta distribution.
La différence, c'est quand tu sors des sentiers battus, et que ce paquet de
développement générique ne convient pas. Avec le modèle libre modulaire au
niveau source, il suffit de recompiler comme tu l'entends, ce qui peut
d'ailleurs parfaitement être optimisé.
Avec ton modèle, tu ne peux rien faire, c'est coincé.
Aéris , dans le message <4dfd0f5f$0$23732$, a écrit :
On en revient donc au point de départ : si je veux intégrer ta librairie à mon programme, j'ai un parcours du combattant qui m'attend avant d'espérer commencer à faire mon vrai boulot (à savoir faire le programme pour mon client, pas me battre avec une librairie dont ce n'est pas mon métier).
Non : dans la plupart des cas, il te suffit d'installer le paquet de développement qui vient avec ta distribution.
La différence, c'est quand tu sors des sentiers battus, et que ce paquet de développement générique ne convient pas. Avec le modèle libre modulaire au niveau source, il suffit de recompiler comme tu l'entends, ce qui peut d'ailleurs parfaitement être optimisé.
Avec ton modèle, tu ne peux rien faire, c'est coincé.
ST
On 6/19/11 12:53 AM, Aéris wrote:
Certes je ne ferais pas un OS ou du temps réel en Java. Mais je ne serais pas assez fou pour aller faire de la bdd ou du web en C/C⁺⁺ !
Ca me viendrait pas vraiment à l'idée de le faire en Java non plus.
-- http://www.unices.org
On 6/19/11 12:53 AM, Aéris wrote:
Certes je ne ferais pas un OS ou du temps réel en Java.
Mais je ne serais pas assez fou pour aller faire de la bdd ou du web en
C/C⁺⁺ !
Ca me viendrait pas vraiment à l'idée de le faire en Java non plus.
Certes je ne ferais pas un OS ou du temps réel en Java. Mais je ne serais pas assez fou pour aller faire de la bdd ou du web en C/C⁺⁺ !
Ca me viendrait pas vraiment à l'idée de le faire en Java non plus.
-- http://www.unices.org
JKB
Le Sat, 18 Jun 2011 22:05:57 +0200, Aéris écrivait :
Le 18/06/2011 21:52, Nicolas George a écrit :
Une fausse bonne idée (la déclaration des exceptions)
Une idée qui parfois te complique la tache mais qui beaucoup plus souvent te la simplifie à l'extrème
Non, ça ne simplifie rien, parce que si tu veux réellement être efficace, tu es contraint à une gestion des erreurs à la C ou à la Fortran. Les exceptions (obligatoire), c'est vraiment une fausse bonne idée.
Ce n'est pas parce que la voiture tue 3.000 personnes par an que tu t'interdis d'en avoir une, non ?
des conséquences néfastes (un catch-all)
C'est surtout une histoire de mauvais développeur, pas de mauvais langage
Au bout d'un certain temps, quand tu en as marre, le naturel revient au galop.
JKB
-- Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr
Le Sat, 18 Jun 2011 22:05:57 +0200,
Aéris <aeris@imirhil.fr> écrivait :
Le 18/06/2011 21:52, Nicolas George a écrit :
Une fausse bonne idée (la déclaration des exceptions)
Une idée qui parfois te complique la tache mais qui beaucoup plus
souvent te la simplifie à l'extrème
Non, ça ne simplifie rien, parce que si tu veux réellement être
efficace, tu es contraint à une gestion des erreurs à la C ou à la
Fortran. Les exceptions (obligatoire), c'est vraiment une fausse
bonne idée.
Ce n'est pas parce que la voiture tue 3.000 personnes par an que tu
t'interdis d'en avoir une, non ?
des conséquences néfastes (un catch-all)
C'est surtout une histoire de mauvais développeur, pas de mauvais langage
Au bout d'un certain temps, quand tu en as marre, le naturel revient
au galop.
JKB
--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
Le Sat, 18 Jun 2011 22:05:57 +0200, Aéris écrivait :
Le 18/06/2011 21:52, Nicolas George a écrit :
Une fausse bonne idée (la déclaration des exceptions)
Une idée qui parfois te complique la tache mais qui beaucoup plus souvent te la simplifie à l'extrème
Non, ça ne simplifie rien, parce que si tu veux réellement être efficace, tu es contraint à une gestion des erreurs à la C ou à la Fortran. Les exceptions (obligatoire), c'est vraiment une fausse bonne idée.
Ce n'est pas parce que la voiture tue 3.000 personnes par an que tu t'interdis d'en avoir une, non ?
des conséquences néfastes (un catch-all)
C'est surtout une histoire de mauvais développeur, pas de mauvais langage
Au bout d'un certain temps, quand tu en as marre, le naturel revient au galop.
JKB
-- Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr
JKB
Le Sat, 18 Jun 2011 22:01:06 +0200, Aéris écrivait :
Le 18/06/2011 21:51, Nicolas George a écrit :
Cette ligne ne compile pas si la bibliothèque optionnelle n'est pas disponible. Essaie encore.
Hu ? La bibliothèque est optionnelle à l'exécution, non à la compilation.
Foutaise. Elle est obligatoire lors de l'édition des liens et de l'exécution. Si tu ne peux pas résoudre les symboles lors de l'édition des liens, tu risques fort de ne pas obtenir d'exécutable.
Maven gère parfaitement ce cas. Ta dépendance est obligatoire à la compilation, mais tu n'en as pas besoin à l'exécution tant que tu n'appelles pas une classe qui en a besoin.
Et même si on veut simuler le bordel des ifdef, tu peux toujours mettre tes sources avec filter dans un sous-répertoire et déclarer un profil Maven qui incluera ce répertoire et la dépendance qui va bien uniquement si tu lui précises le profil sur sa ligne de commande (« mvn install - -Pfilter ») Mais ceci est à mon avis totalement inutile.
Surtout, pourquoi faire simple quand on peut faire compliqué ?
JKB
-- Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr
Le Sat, 18 Jun 2011 22:01:06 +0200,
Aéris <aeris@imirhil.fr> écrivait :
Le 18/06/2011 21:51, Nicolas George a écrit :
Cette ligne ne compile pas si la bibliothèque optionnelle n'est pas
disponible. Essaie encore.
Hu ?
La bibliothèque est optionnelle à l'exécution, non à la compilation.
Foutaise. Elle est obligatoire lors de l'édition des liens et de
l'exécution. Si tu ne peux pas résoudre les symboles lors de
l'édition des liens, tu risques fort de ne pas obtenir
d'exécutable.
Maven gère parfaitement ce cas.
Ta dépendance est obligatoire à la compilation, mais tu n'en as pas
besoin à l'exécution tant que tu n'appelles pas une classe qui en a besoin.
Et même si on veut simuler le bordel des ifdef, tu peux toujours mettre
tes sources avec filter dans un sous-répertoire et déclarer un profil
Maven qui incluera ce répertoire et la dépendance qui va bien uniquement
si tu lui précises le profil sur sa ligne de commande (« mvn install
- -Pfilter »)
Mais ceci est à mon avis totalement inutile.
Surtout, pourquoi faire simple quand on peut faire compliqué ?
JKB
--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
Le Sat, 18 Jun 2011 22:01:06 +0200, Aéris écrivait :
Le 18/06/2011 21:51, Nicolas George a écrit :
Cette ligne ne compile pas si la bibliothèque optionnelle n'est pas disponible. Essaie encore.
Hu ? La bibliothèque est optionnelle à l'exécution, non à la compilation.
Foutaise. Elle est obligatoire lors de l'édition des liens et de l'exécution. Si tu ne peux pas résoudre les symboles lors de l'édition des liens, tu risques fort de ne pas obtenir d'exécutable.
Maven gère parfaitement ce cas. Ta dépendance est obligatoire à la compilation, mais tu n'en as pas besoin à l'exécution tant que tu n'appelles pas une classe qui en a besoin.
Et même si on veut simuler le bordel des ifdef, tu peux toujours mettre tes sources avec filter dans un sous-répertoire et déclarer un profil Maven qui incluera ce répertoire et la dépendance qui va bien uniquement si tu lui précises le profil sur sa ligne de commande (« mvn install - -Pfilter ») Mais ceci est à mon avis totalement inutile.
Surtout, pourquoi faire simple quand on peut faire compliqué ?
JKB
-- Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr
JKB
Le Sat, 18 Jun 2011 22:34:36 +0200, Aéris écrivait :
En quoi est-ce différent de mon code ? Sinon que je n'ai aucune variable globale =) ?
Et tu crois qu'une classe (par définition dans ton code globale), c'est autre chose qu'un ensemble de variables collés à un ensemble de fonctions ? Virer une variable globale pour la remplacer par une classe (avec les limites que ça implique, parce qu'en programmation multithreadée, ça peut devenir assez rapidement jouissif), c'est une tartufferie.
JKB
-- Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr
Le Sat, 18 Jun 2011 22:34:36 +0200,
Aéris <aeris@imirhil.fr> écrivait :
En quoi est-ce différent de mon code ?
Sinon que je n'ai aucune variable globale =) ?
Et tu crois qu'une classe (par définition dans ton code globale),
c'est autre chose qu'un ensemble de variables collés à un ensemble
de fonctions ? Virer une variable globale pour la remplacer par une
classe (avec les limites que ça implique, parce qu'en programmation
multithreadée, ça peut devenir assez rapidement jouissif), c'est une
tartufferie.
JKB
--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
En quoi est-ce différent de mon code ? Sinon que je n'ai aucune variable globale =) ?
Et tu crois qu'une classe (par définition dans ton code globale), c'est autre chose qu'un ensemble de variables collés à un ensemble de fonctions ? Virer une variable globale pour la remplacer par une classe (avec les limites que ça implique, parce qu'en programmation multithreadée, ça peut devenir assez rapidement jouissif), c'est une tartufferie.
JKB
-- Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr
Aéris
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Le 19/06/2011 09:45, JKB a écrit :
Et tu crois qu'une classe (par définition dans ton code globale), c'est autre chose qu'un ensemble de variables collés à un ensemble de fonctions ? Virer une variable globale pour la remplacer par une classe (avec les limites que ça implique, parce qu'en programmation multithreadée, ça peut devenir assez rapidement jouissif), c'est une tartufferie.
N'aurais-tu pas remarquer le @Resource dans la 2nde classe ?
C'est ce truc qui permet de me passer d'une variable globale et qui ne fait aucune hypothèse sur l'endroit où je vais trouver ma conf. La construction de l'instance de la conf est déléguée à l'IoC, ce qui rend le code totalement modulable (la conf peut provenir de la bdd, d'un fichier de conf, être hardcodée, fournie sur la ligne de commande…) et réutilisable (pas de supposition de la présence d'une varglo initialisée au lancement, ce qui le rendrait inutilisable en tant que librairie…)
- -- Aeris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Et tu crois qu'une classe (par définition dans ton code globale),
c'est autre chose qu'un ensemble de variables collés à un ensemble
de fonctions ? Virer une variable globale pour la remplacer par une
classe (avec les limites que ça implique, parce qu'en programmation
multithreadée, ça peut devenir assez rapidement jouissif), c'est une
tartufferie.
N'aurais-tu pas remarquer le @Resource dans la 2nde classe ?
C'est ce truc qui permet de me passer d'une variable globale et qui ne
fait aucune hypothèse sur l'endroit où je vais trouver ma conf.
La construction de l'instance de la conf est déléguée à l'IoC, ce qui
rend le code totalement modulable (la conf peut provenir de la bdd, d'un
fichier de conf, être hardcodée, fournie sur la ligne de commande…) et
réutilisable (pas de supposition de la présence d'une varglo initialisée
au lancement, ce qui le rendrait inutilisable en tant que librairie…)
- --
Aeris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Et tu crois qu'une classe (par définition dans ton code globale), c'est autre chose qu'un ensemble de variables collés à un ensemble de fonctions ? Virer une variable globale pour la remplacer par une classe (avec les limites que ça implique, parce qu'en programmation multithreadée, ça peut devenir assez rapidement jouissif), c'est une tartufferie.
N'aurais-tu pas remarquer le @Resource dans la 2nde classe ?
C'est ce truc qui permet de me passer d'une variable globale et qui ne fait aucune hypothèse sur l'endroit où je vais trouver ma conf. La construction de l'instance de la conf est déléguée à l'IoC, ce qui rend le code totalement modulable (la conf peut provenir de la bdd, d'un fichier de conf, être hardcodée, fournie sur la ligne de commande…) et réutilisable (pas de supposition de la présence d'une varglo initialisée au lancement, ce qui le rendrait inutilisable en tant que librairie…)
- -- Aeris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Foutaise. Elle est obligatoire lors de l'édition des liens et de l'exécution. Si tu ne peux pas résoudre les symboles lors de l'édition des liens, tu risques fort de ne pas obtenir d'exécutable.
Ben je ne sais pas comment vous avez gaulé votre bordel en C/C⁺⁺ mais Java s'en sort très bien dans ce cas là =)
Je peux avoir un .jar executable compilé avec une certaine librairie et je n'ai absolument pas besoin du .jar de ma lib à l'exécution tant que je n'ai pas besoin d'une seule de ses classes.
À la limite je peux même lancer mon jar sans la lib, mettre la lib après-coup, et sans redémarrer l'exe, me mettre à utiliser ses classes.
- -- Aeris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Foutaise. Elle est obligatoire lors de l'édition des liens et de
l'exécution. Si tu ne peux pas résoudre les symboles lors de
l'édition des liens, tu risques fort de ne pas obtenir
d'exécutable.
Ben je ne sais pas comment vous avez gaulé votre bordel en C/C⁺⁺ mais
Java s'en sort très bien dans ce cas là =)
Je peux avoir un .jar executable compilé avec une certaine librairie et
je n'ai absolument pas besoin du .jar de ma lib à l'exécution tant que
je n'ai pas besoin d'une seule de ses classes.
À la limite je peux même lancer mon jar sans la lib, mettre la lib
après-coup, et sans redémarrer l'exe, me mettre à utiliser ses classes.
- --
Aeris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Foutaise. Elle est obligatoire lors de l'édition des liens et de l'exécution. Si tu ne peux pas résoudre les symboles lors de l'édition des liens, tu risques fort de ne pas obtenir d'exécutable.
Ben je ne sais pas comment vous avez gaulé votre bordel en C/C⁺⁺ mais Java s'en sort très bien dans ce cas là =)
Je peux avoir un .jar executable compilé avec une certaine librairie et je n'ai absolument pas besoin du .jar de ma lib à l'exécution tant que je n'ai pas besoin d'une seule de ses classes.
À la limite je peux même lancer mon jar sans la lib, mettre la lib après-coup, et sans redémarrer l'exe, me mettre à utiliser ses classes.
- -- Aeris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
Aéris , dans le message <4dfdbef7$0$29530$, a écrit :
Je peux avoir un .jar executable compilé avec une certaine librairie et je n'ai absolument pas besoin du .jar de ma lib à l'exécution tant que je n'ai pas besoin d'une seule de ses classes.
Et je suppose que le code dans le programme principal que sert à faire usage des fonctionnalités de cette bibliothèque disparaît magiquement du .jar si la bibliothèque n'est pas disponible ?
À la limite je peux même lancer mon jar sans la lib, mettre la lib après-coup, et sans redémarrer l'exe, me mettre à utiliser ses classes.
Et si, « sans redémarrer l'exe », tu te mets à utiliser ses classes sans avoir installé la bibliothèque, il se passe quoi exactement ?
Aéris , dans le message <4dfdbef7$0$29530$426a74cc@news.free.fr>, a
écrit :
Je peux avoir un .jar executable compilé avec une certaine librairie et
je n'ai absolument pas besoin du .jar de ma lib à l'exécution tant que
je n'ai pas besoin d'une seule de ses classes.
Et je suppose que le code dans le programme principal que sert à faire usage
des fonctionnalités de cette bibliothèque disparaît magiquement du .jar si
la bibliothèque n'est pas disponible ?
À la limite je peux même lancer mon jar sans la lib, mettre la lib
après-coup, et sans redémarrer l'exe, me mettre à utiliser ses classes.
Et si, « sans redémarrer l'exe », tu te mets à utiliser ses classes sans
avoir installé la bibliothèque, il se passe quoi exactement ?
Aéris , dans le message <4dfdbef7$0$29530$, a écrit :
Je peux avoir un .jar executable compilé avec une certaine librairie et je n'ai absolument pas besoin du .jar de ma lib à l'exécution tant que je n'ai pas besoin d'une seule de ses classes.
Et je suppose que le code dans le programme principal que sert à faire usage des fonctionnalités de cette bibliothèque disparaît magiquement du .jar si la bibliothèque n'est pas disponible ?
À la limite je peux même lancer mon jar sans la lib, mettre la lib après-coup, et sans redémarrer l'exe, me mettre à utiliser ses classes.
Et si, « sans redémarrer l'exe », tu te mets à utiliser ses classes sans avoir installé la bibliothèque, il se passe quoi exactement ?