Résolu [Linux] Erreur de lecture de fichier
-
Bonsoir,
Je viens de passer sous Linux et j’ai un problème avec ce code qui marchait avant de passer sur Linux:
try { System.out.println(languageFile.exists()); Scanner scan = new Scanner(languageFile); while(scan.hasNextLine()) { System.out.println(scan.nextLine()); } scan.close(); } catch(Exception e) { e.printStackTrace(); }
Le fichier existe bien (print du “true”) seulement il est rempli ce fichier et aucune ligne est lu maintenant, je ne comprends pas, sûrement une histoire de permissions mais par rapport au .jar du serveur, le .jar du mod et le fichier .txt je ne sais pas quoi faire comme commandes pour que ça refonctionne.
De plus mon code ne saute pas dans le catch.
Merci d’avance,
-
S’il y avait un problème de permission tu aura eu un FileNotFoundException : access deny.
Donc non, ce n’est pas un problème de permission.Où se trouve le fichier en question ?
-
/home/AltisCraft.fr/Minecraft/plugins/Language.txt
Merci de ton aide,
-
/home/AltisCraft.fr/ ?
Mes yeux me brule …Mets ton fichier dans /home/<nom de=“” la=“” session=“”>/quelque chose.
Finalement tu as peut-être quand même un problème de permission actuellement …</nom>
-
Oups ^^ J’avais oublié ça ^^ Voilà maintenant c’est /home/root/AltisCraft.fr/Minecraft/plugins/AltisCraft.fr/Language.txt mais ça ne fonctionne toujours pas
-
Normal oui, /home/root est tout sauf valide.
Utilises System.getProperty(“user.home”, “.”); pour avoir le dossier home.
Jamais de chemin en dur. -
Je parlais de la localisation de mon fichier ^^
Mon mods est ici: /home/root/AltisCraft.fr/Minecraft/mods/AltisCraft.fr.Server.jar
et mon code est pour languageFile : new File(new File(“”).getAbsolutePath() + File.separatorChar + “plugins” + File.separatorChar + “AltisCraft.fr” + File.separatorChar + “Language.txt”)
et quand je print le chemin de languageFile ça me retourne bien la bonne localisation du fichier en question
-
/home/root/ ?
wft ?
Le dossier root est normalement directement dans la racine : /root/Et puis bon, si tu lance ton serveur en root, c’est une grave erreur de sécurité.
-
“Mets ton fichier dans /home/<nom de=”" la=“” session=“”>/quelque chose." Je ne fais que suivre tes explications ^^
Ok, tu me conseilles quoi alors s’il te plaît ?</nom>
-
Si ta session est root, normalement le dossier de ta session c’est /root/
/home/<nom de=“” la=“” session=“”>/ ce n’est que pour les autres.Et ce que je te conseil c’est de commencer par créer une session pour ton serveur mc et de ne pas lancer ton serveur en root.</nom>
-
Voilà qui est fait, user: altiscraft
/home/altiscraft/AltisCraft.fr/Minecraft/…Mais ça ne fonctionne toujours pas alors que j’ai fais chown altiscraft /home/altiscraft/AltisCraft.fr/, mais ce qui a permet l’éxécution du serveur.
-
Étrange, je ne vois pas pourquoi ça ne fonctionne pas alors
Essaies de print la taille du fichier pour voir ce qu’il dit ? -
[/java]System.out.println(FileAPI.languageFile);
System.out.println(FileAPI.languageFile.length());[/java][16:27:37] [Server thread/INFO]: /home/altiscraft/AltisCraft.fr/Minecraft/plugins/AltisCraft.fr/Language.txt
[16:27:37] [Server thread/INFO]: 8863C’est la bonne taille (tout n’est pas sur une ligne hein ^^)
-
Je ne sais pas où est le problème
-
Est-ce que le code s’arrête ? Ou est-ce qu’il tourne indéfiniment?
-
J’ai fait des print de partout et en fait il ne rentre juste pas dans la boucle, comme s’il n’y avait aucune ligne dans le fichier…
-
Après des heures et des heures de recherches et de tests, ce n’était pas les droits d’accès qui génèrent le problème mais les accents présents dans mes fichiers, mon Linux étant en Anglais il n’a pas kiffé ^^ Voilà le tutoriel que j’ai suivi et ça fonctionne ! https://forum.ubuntu-fr.org/viewtopic.php?id=6446