cs_bordeaux
Messages postés35Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention14 juin 2008
-
1 déc. 2006 à 15:20
cs_bordeaux
Messages postés35Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention14 juin 2008
-
1 déc. 2006 à 16:53
Bonjour,
j'aimerais développer une application compatible sous
Linux et Windows. Le seul problème, c'est que j'ai des lignes de code
spécifiquement pour Linux et d'autres pour Windows.
J'aimerais bien
savoir qu'elle est le nom des variables globales qui permettent de
faire la différence entre les deux systèmes d'exploitation.
super_toinou
Messages postés764Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 8 mars 20116 1 déc. 2006 à 15:57
oula !! tu craques la !!
délègue a d autres classes la gestion de tes commandes
if (new String("Linux").compareTo.(System.getProperty ( "os.name" )) == 0)
Linux.fais qque chose
else
Windows.fais autre chose
tu crée une classe Linux et Windows qui ont leurs bon imports et effectuent le bon code !!
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 1 déc. 2006 à 16:43
Salut,
en java tu n'as pas les instructions de pré-compilation donc faut faire avec...
Pour ce que te propose [auteurdetail.aspx?ID=283222 super_toinou]est assez simple et ne demande pas d'avoir un binaire pour windows et un pour linux mais simplement de choisir une classe ou une autre selon le type de l'os soit:
le fichier Linux.java
import mes_imports_linux;
public class Linux{
//mon code linux
}
le fichier Windows.java
import mes_imports_Windows;
public class Windows
//mon code Windows
}
le fichier Comm.java <- celui qui fail la selection
public class Comm{
public Comm(){
String os = System.getProperty ("os.name").toLowerCase();
if(os.startsWith("linux")){
Linux linux = new Linux();
//...... le code
}else if(os.startsWith("windows")){
Windows windows = new Windows();
//...... le code
}else{
System.err.println("OS non supporté !!!");
}
}
cs_bordeaux
Messages postés35Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention14 juin 2008 1 déc. 2006 à 15:33
Mais ca ne marche pas lors de la compilation :
if (new String("Linux").compareTo.(System.getProperty ( "os.name" )) == 0)
import javax.TOTO;
else
import javax.comm.CommPortIdentifier;
Il veut pas compiler.
Et ca me fait la meme erreur pour les lignes de codes styles :
Win32Driver w32Driver= new Win32Driver();
En fait je voudrais faire coexister des lignes de code windows et linux dans le même fichier et que ce soit au compilateur de choisir.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 1 déc. 2006 à 15:55
Salut,
tu ne peux pas faire ce que tu fais pour les imports.... une solution pour toi serai de passer par des méthodes de reflexion et ainsi te passer des imports et des erreur que tu as...
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."