|
Publicité ' | ||||||||||||||||||||||||
|
|
#41 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 27 ![]() |
Oui, c'est vrai ça, tiens !!!!!
Oups, j'étais tellement dans mon truc que je ne m'en étais même pas rendu compte. C'est pas très beau ...
|
|
|
00
|
|
|
#42 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 27 ![]() |
Savez-vous comment on récupère le path des ressources downloadées sur le poste client à partir de l'applet ?
J'ai essayé la solution de fxrobin en faisant : Code :
URL url = getClass().getResource("jniApi.dll"); Pourtant ma dll est contenue dans un jar (à la racine) qui est bien indiqué dans mon fichier jnlp via la balise nativeLib ???? |
|
|
00
|
|
|
#43 | ||
|
Membre Expert
![]() Formateur JAVA / XML Inscription : novembre 2007 Messages : 849 ![]() |
Alors, à mon avis il faut que tu fasses une classe "LibLoader" par exemple que tu mets dans le même JAR que tes DLL.
ensuite tu fais une méthode static dedans au même endroit (racine) qui te permettra de récupérer un inputstream dessus : Code :
pour que ça fonctionne il faut que tes dll et "LibLoader" soient dans le même package, sinon il faudra que tu donnes un chemin absolu pour le nom de ta dll.
__________________
Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ... |
||
|
|
00
|
|
|
#44 | |
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
Code :
URL url = getClass().getResource("/jniApi.dll");
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|
|
|
00
|
|
|
#45 | ||
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 27 ![]() |
Salut,
Bon ré-essai ce matin à tête reposée : Au final, j'ai réussi à faire fonctionner le getResource ainsi : et le System.loadLibrary ainsi: En fait, je me suis aperçu que mon jar contenant les DLLs était corrompu => j'ai refait le jar et c'est OK. Conclusion: après quelques tests, je n'ai finalement pas le choix => je suis obligé de faire modifier le code de l'api par l'équipe extérieure (j'espère qu'ils vont accepter) car leur code, même en mettant les DLLs au même endroit que l'api, cela ne fonctionne pas. (pour rappel, pour récupérer le chemin de la DLL, ils font Code :
|
||
|
|
00
|
|
|
#46 |
|
Expert Confirmé Sénior
![]() ![]() |
Visiblement, tu as le code de la librairie externe. Moi je ne me casserais pas la nenette si ils refusent => je patch moi même, puisque de toutes façons, c'est moi qui distribue le jar
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|
|
00
|
|
|
#47 |
|
Membre Expert
![]() Formateur JAVA / XML Inscription : novembre 2007 Messages : 849 ![]() |
Exact,
Je supprime le .class qui m'ennuie et je le remplace par le mien, le tout repackagé dans le JAR ... et hop
__________________
Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ... |
|
|
00
|
|
|
#48 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 27 ![]() |
Disons qu'un petit coup de jad rend bien des services quand on a aucune doc
Pour vos solutions, c'est la 1ère chose que j'ai fait. Malheureusement (ou heureusement, ça dépend du point de vue), leur jar est signé par un certificat (que je ne détiens pas bien sûr) |
|
|
00
|
|
|
#49 | ||||
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 27 ![]() |
Auriez-vous une idée par hasard sur le problème suivant ?
Dans mon fichier JNLP principal où j'ai défini mon applet, je définis mon extension vers un autre fichier JNLP ainsi que des propriétés système. Dans mon applet, quand je fais un Sytem.getProperty(), cela me retourne null. Si maintenant, je mets les propriétés système dans le fichier jnlp d'extension, je récupère bien mes propriétés ????? Voici mon fichier JNLP principal portant l'applet Code :
Code :
|
||||
|
|
00
|
|
|
#50 |
|
Membre Expert
![]() Formateur JAVA / XML Inscription : novembre 2007 Messages : 849 ![]() |
ton applet est signée ?
__________________
Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ... |
|
|
00
|
|
|
#51 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 27 ![]() |
Oui
Une piste tout de même => mon fichier jnlp est externe à mon jar et lui n'est pas signé ... (mais c'est aussi le cas pour mes extensions donc ??? ) Piste à étudier demain ... Y'a possibilité de mettre mes jnlp dans mon jar contenant l'applet et de les appeler depuis ma page web ? |
|
|
00
|
|
|
#52 | |
|
Membre Expert
![]() Formateur JAVA / XML Inscription : novembre 2007 Messages : 849 ![]() |
Citation:
euh ... joker ...tu peux peut-être essayer d'embarquer une JVM dans ton JAR ... euh je blague hein
__________________
Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ... |
|
|
|
00
|
|
|
#53 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 27 ![]() |
Ah bon ? on peut faire ça
![]() Oui bon, d'accord, un JNLP qui fait référence à un jar dans lequel il est contenu, je t'accorde ton joker. Je vais plutôt aller me coucher là, ça sera mieux pour tout le monde |
|
|
00
|
|
|
#54 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 27 ![]() |
Euh, finalement, mon idée n'était pas si saugrenue que cela.
En lisant les specs JSR-056 => http://fr.scribd.com/doc/6677/jnlp1-0-1spec au chapitre 5.4.1, on peut voir: A JNLP file is signed by including a copy of it in the signed main JAR file . The copy must match theJNLP file used to launch the application. The signed copy must be named: JNLP-INF/APPLICATION.JNLP . The APPLICATION.JNLP filename should be generated in upper case,but should be recognized in any case Test effectué et ça fonctionne => mes propriétés système sont maintenant bien lues je trouve quand même discutable cette "technique" ... |
|
|
10
|
|
|
#55 |
|
Membre Expert
![]() Formateur JAVA / XML Inscription : novembre 2007 Messages : 849 ![]() |
Et bien ce qui est bien avec Java, c'est qu'on a beau en faire depuis des années, on en apprend tous les jours. Merci pour l'info.
__________________
Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ... |
|
|
00
|
|
|
#56 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 27 ![]() |
Précision sur la solution => il faut valoriser les attributs codeBase et href malgré qu'il soit indiqué dans la doc oracle que le mieux est de les laisser vides ...
Sinon, on se tape un BadFieldException: Le champ <jar>href contient une valeur non valide dans le fichier de lancement signé ... Par contre, est-il normal que quand j'indique en codeBase => http://monIP, cela ouvre une nouvelle console java lorsque j'exécute mon applet ???? |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com