Bonjour je me posais la question suivante : Si j'utilise des méthodes natives en JAVA, est-ce que j'annule le coté portatif du java ? Mon programme fonctionnera t-il sur MAC ?
THX.
Version imprimable
Bonjour je me posais la question suivante : Si j'utilise des méthodes natives en JAVA, est-ce que j'annule le coté portatif du java ? Mon programme fonctionnera t-il sur MAC ?
THX.
Salut,
Cela dépend... Comme tu appelles du code natif, il faut que ce code binaire soit compilé (et compilable) pour la machine cible...
Si tu utilises une librairie externe, elle doit surement proposer le code binare natif pour différents systèmes... A toi de voir les systèmes supportés ou pas...
Si tu code toi-même ce code natif, c'est à toi de compiler ce code pour les différentes plateformes...
Au final tu peux très bien faire du code natif portable, mais tu devras fournir les différents code binaire obtenu...
a++
À noter que l'on peut aussi facilement dégrader une application si la machine cible n'est pas supportée au niveau binaire. Exemple :
Si la bibliothèque native n'existe pas ou ne peut être chargée, isValid() renvoie false. Il suffit de vérifier cette condition avant d'appeler les méthodes natives et de dégrader l'application en conséquence.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public class FontTypeSupport { private static boolean isValid = true; static { try { System.loadLibrary("JypeFontTypeSupport"); } catch (Exception e) { isValid = false; } catch (Error err) { isValid = false; } } public static boolean isValid() { return isValid; } public static native boolean isTrueType(Font f); public static native boolean isType1(Font f); }
Héhé je ne me serais jamais attendu à des réponses aussi précises ! Merci les gars de faire partager vos compétences :oops: