2016-02-08 1 views
1

je ne peux pas accéder au fichier hosts de Windows avec java (écrire juste):vu refuser l'accès à l'accès à/etc/hosts

java.io.FileNotFoundException: C:\Windows\system32\drivers\etc\hosts (Access is denied) 
at java.io.FileOutputStream.open(Native Method) 

quand je veux ajouter mon texte au fichier hosts obtenir au-dessus erreur .. .

ceci est mon code:

BufferedWriter bw = null; 
    try { 
     // APPEND MODE SET HERE 
     bw = new BufferedWriter(new FileWriter(file,true)); 
     bw.write(text); 
     bw.newLine(); 
     bw.flush(); 
    } catch(FileNotFoundException e) { 
     e.printStackTrace(); 

    } catch (IOException ioe) { 
     ioe.printStackTrace(); 
    } finally {      try { 
     // always close the file 
     bw.close(); 
     } catch (IOException ex) { 
      Logger.getLogger(FileWrite.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

} // end test() 

ce travail de code pour les fichiers simples dans un autre emplacement des fenêtres .. (juste obtenir erreur sur c: \ windows \ ...

et: i utiliser manifeste Microsoft pour définir l'accès d'administration [fonctionne pas]

définir l'accès complet aux hôtes fichier [fonctionne pas]

s'il vous plaît aider ..

TNX

+0

Exécutez votre application java en tant qu'administrateur – Ferrybig

+0

vraiment ?? :) pouvez-vous me montrer un moyen de lancer l'application java en tant qu'administrateur? Pour utiliser les droits d'administrateur manifestes de Microsoft et ne pas travailler – Abolfazl74

+1

Pour "privilèges administratifs Microsoft manifeste" vous avez besoin d'un fichier exe, mais vous pouvez exécuter cmd en tant qu'administrateur, puis utilisez la commande java pour démarrer votre application. – Ferrybig

Répondre

0

Vérifiez si votre Java fonctionne vraiment en tant qu'administrateur écrire dans un nouveau fichier dans le même dossier). Il y a évidemment un problème d'accès et pour le résoudre vous devez comprendre qui vous êtes (utilisateur/service de votre application) et quelles sont les permissions de ressource (fichier) auxquelles vous essayez d'accéder.

Voici deux façons comment vous pouvez essayer de le déboguer: 1) Vous ne disposez pas des autorisations pour écrire le fichier (vous pouvez le lire) 2) Vous ne disposez pas des autorisations pour entrer dans le dossier (? pouvez-vous lister les fichiers dedans)

+0

c'est le travail pour les autres lecteurs, juste l'accès refusé sur C: \\ Windows \\ je teste mon code sur d'autres fichiers et fonctionne – Abolfazl74

+0

Si le régime d'autorisation est différent, cela va fonctionner, vous devez déterminer à quoi ça ressemble dans le endroit où cela ne fonctionne pas. – Jurz