2010-04-13 2 views
1

Je fais du codage JAVA à la maison et au travail. À la maison j'ai Linux, travail, Windows. Le chemin d'accès au fichier X dans Windows est c: \ Documents et paramètres \ Utilisateur \ Mes documents \ Dropbox \ fichier.xxx et sous Linux est quelque chose comme/media/Mes documents/Dropbox/fichier.xxxAccéder à un fichier sous Windows et Linux lorsque vous travaillez avec JAVA + Eclipse

Ainsi, chaque fois Je modifie dans l'un ou l'autre système, je dois changer manuellement la racine du fichier dans une nouvelle déclaration de fichier (FILEPATH). Y at-il une solution de contournement pour cela? Je parie que si la racine du fichier est relative à l'arborescence des ressources du projet, cela ferait l'affaire, mais c'est une solution basée sur Eclipse, pas JAVA, je crois.

Répondre

3

Comment l'utilisation System.getProperty("os.name")? Ensuite, définissez le chemin du fichier en fonction du système d'exploitation. Une autre façon serait de passer dans la racine en tant que paramètre.

2

Vous pouvez utiliser la propriété user.home pour obtenir le répertoire de l'utilisateur actuel:

System.getProperty("user.home") 
3

Quelques suggestions:

  • Un fichier dans un sous-répertoire du projet est multi-plateforme portable (en supposant, vous deviez lancer le programme en dehors d'Eclipse vous maintenir le fichier dans le même endroit).

  • stocker le fichier dans un chemin relatif similaire à votre répertoire personnel (~ Linux% USERPROFILE% sous Windows) et utilisez System.getProperty("user.home")

  • Enregistrez le fichier sur le chemin de la classe et utiliser ClassLoader.getResourceAsStream() ou similaire.

+0

Oui, la structure du projet est la même dans les deux systèmes, il suffit de modifier le chemin d'accès au répertoire racine du projet. Comment charger un fichier sans mentionner le chemin d'accès au répertoire racine? Essayé avec "file.xxx" "/TheProject/res/file.xxx" et ne fonctionne pas. –

+0

Le javadoc pour le fichier explique le processus de conversion en détail http://java.sun.com/javase/6/docs/api/java/io/File.html. Essentiellement, étant donné la structure /TheProject/res/file.xxx ou sur Windows C: \ TheProject \ res \ fichier et en supposant que dans les deux cas, l'application est lancée à partir du répertoire TheProject, 'new File (" res/file.xxx "); 'devrait vous obtenir la bonne référence de fichier. – ig0774

Questions connexes