Bonjour,
Tout est dans le titre, je cherche à comprendre ce qu'est le mot clef native dans java, il est utilisé au même titre que static devant une méthode.
Merci :)
PS : Ce n'est pas dans la FAQ ;)
Version imprimable
Bonjour,
Tout est dans le titre, je cherche à comprendre ce qu'est le mot clef native dans java, il est utilisé au même titre que static devant une méthode.
Merci :)
PS : Ce n'est pas dans la FAQ ;)
native devant une méthode, ca veut dire que cette méthode se trouve dans un code natif. Cette méthode sera appellée via JNI dans une dll par exemple. Donc c'est transparent dans ton code, mais en fait tu n'appelles pas une méthode java, mais une méthode java qui va appeller une autre méthode dans un langage natif.Citation:
Envoyé par BiM
Je sais pas si j'ai été clair ?
Merci Wicht, tu as été tout à fait clair.
Puis quand même voir le code de cette méthode ? (Afin de mieux en comprendre son comportement)
Vive le debuggage !!
Si tu tiens à voir le code de cette méthode, il te faudra chercher dans les fichiers qui sont liés au .jar s'ils contiennent la méthode en question.Citation:
Envoyé par BiM
Le problème, c'est que ces fichiers sont souvent compilés et qu'il faudra les compiler pour en lire le code source ce qui dans certains cas n'est pas possible, mais de ce coté-là, je connais pas trop...
Ca risque d'être difficile alors... Parce que dans mon cas, c'est un fichier appartement au package java.io, la classe FileSystem.
Je sais pas ce qu'il en est, mais tu peut aller fouiller dans les dll de Java voir si tu trouves la méthode en question, mais je suis pas sûr que ça soit si facile :aie:Citation:
Envoyé par BiM
J'ai la flemme tant pis, merci ;)
Finalement j'ai besoin de ton aide wicht (et des autres personnes qui voudront bien m'aider). Il faut absolument que je comprenne OU est cette dll, je ne veux pas spécialement la décompiler mais dans un premier temps la trouver. Je ne sais pas comment m'y prendre... des idées ? :roll:
Je rappelle que c'est java.io.FileSystem que je cherche, ainsi que java.io.Win32FileSystem et java.io.WinNTFileSystem.
Je t'envoie un énOrme bizoux si tu arrives à m'aider :)
Bon, je suis pas sûr de moi, mais ça a l'air d'être dans java.dll dans jre/bin. J'ai fais un grep sur toutes les dll de la JRE et c'est celle-ci qui contient les méthodes natives de FileSystem. Il y a aussi le fichier classes.jsa qui contient toutes les méthodes, mais je sais pas trop ce que c'est...
Salut,
Par curiosité, c'est quoi le problème exactement ? Avec quelle version du JDK ?
Je demande ca car avoir des soucis avec des librairies natives faisant part du JDK, c'est relativement rare. Et quand ca existe, il y a souvent des traces dans les bugs Sun.
@+
Le plus facile serait pour moi d'aller fouiller dans les sources du jdk 7 (celui qui est open source et en cours de développement) pour trouver l'emplacement de cette classe puis en déduire dans quelle dll de java elle se trouve (il est probable que ça ne bouge pas trop entre java 7 et les versions précédentes)
Bonjour à tous les deux.
En fait, la méthode list() de FileSystem - ou plus exactement WinNTFileSystem me renvoie null apparement. Et j'aimerais savoir pour quelle raison : dans quels cas cette méthode renvoie-t-elle null ?
Erf, c'est vrai que c'est pas précisé dans la documentation... Ca dit juste que ca renvoie null si l'opération ne s'est pas déroulé avec succès... Pas très utile...Citation:
Envoyé par BiM
Wahou !!! Moi j'ai trouvé des docs vides :mrgreen:Citation:
Envoyé par wichtounet
Je dirais que l'opération pourrait échouée en cas de problèmes à la lecture du dossiers (droits), mais je n'ai pas pu vérifier. A la main, les droits ont l'air correct, en debuggage, il faut voir sur un autre sujet que je viens de poster pour tenter de savoir si j'ai les droits.
[EDIT]C'est un autre sujet (qui n'est pas un multipost) ;) : http://www.developpez.net/forums/sho...d.php?t=273496[/EDIT]
Ce que tu peux faire, je sais pas si c'est tout à fait légal ou pas mais bon...
Tu désassembles la dll, mais après va falloir t'accrocher :aie:, c'est tout du code assembleur et c'est pas vraiment joli à voir... Je viens d'aller voir la méthode list native de Win32FileSystem, mais j'ai rien compris :aie:
Mdr... Ben c'est juste pour comprendre, pas pour piquer le code ou le modifier (en même temps moi et l'assembleur... Voila hein).Citation:
Envoyé par wichtounet
Et c'est pas de bol parce la méthode list de Win32FileSystem est écrasée par celle de WinNTFileSystem.
Ca change pas grand chose :mouarf: Le code de WinNTFileSystem est tout aussi incompréhensif :aie:Citation:
Envoyé par BiM
Salut,
Ca ne nous aide pas vraiment pour comprendre ce que tu essaye de faire ;)Citation:
En fait, la méthode list() de FileSystem - ou plus exactement WinNTFileSystem me renvoie null apparement.
Pourrais tu nous donner quelques précisions :
- Quel JDK ?
- Quelle plateforme ?
- C'est quoi ton code ?
Donnes nous le plus d'informations possibles, si on ne sais pas ce que tu essaye de faire avec ton code, on ne peut pas t'aider.
Ce que je veux dire par là, c'est que je pense que vous partez dans une mauvaise direction en cherchant le problème dans une classe abstraite (ou une de ses implémentations dépendantes de la plateforme), sans déjà regarder le code de ton application (qui n'a j'imagine qu'un lointain rapport avec cette classe).
Bonne chance.
@+
Je reprendrais le sujet dans deux semaines, je pars en vacances ;)
Le contexte est un peu compliqué donc bon... Mais j'y reviendrais, promis :)