2016-01-15 2 views
0

Je développais un projet en Java pour scanner le système de fichiers et cela impliquait d'exécuter des commandes DOS dans Java avec le privilège administratif.Comment exécuter des commandes DOS dans Java avec des privilèges administratifs?

J'ai déjà écrit le programme pour exécuter des commandes DOS simples en Java.

public class doscmd { 

    public static void main(String args[]) { 
     try { 
      Process p = Runtime.getRuntime().exec("cmd /C dir"); 
      p.waitFor(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 
      String line = reader.readLine(); 
      while (line != null) { 
       System.out.println(line); 
       line = reader.readLine(); 
      } 

     } catch (IOException e1) { 
     } catch (InterruptedException e2) { 
     } 

     System.out.println("Done"); 
    } 
} 

Mais comme vous pouvez le voir, cela ne permet pas d'exécuter des commandes élevées. Je suis en train de développer le projet dans NetBeans IDE et j'espérais que l'un de vous puisse me dire s'il y avait du code dans Java pour obtenir le privilège admin au lieu de convertir le fichier en .exe puis en cliquant sur Exécuter en tant qu'administrateur.

+0

Copie possible de [Exécuter l'invite de commande en tant qu'administrateur] (http://stackoverflow.com/questions/14596599/run-command-prompt-as-administrator) – Idos

+0

Java ne fonctionne pas sous DOS, pour autant que je sache . Voulez-vous dire les commandes de la console Windows? –

Répondre

0

essayer ce code, ça marche pour moi:

String command = "cmd /c start cmd.exe"; 
    Process child = Runtime.getRuntime().exec(command); 
    OutputStream output = child.getOutputStream(); 

    output .write("cd C:/ /r/n".getBytes()); 
    output .flush(); 
    output .write("DIR /r/n".getBytes()); 
    output .close(); 
+0

Cela devrait fonctionner.J'utilise cette tactique lorsque ping, 100% de succès. –

+0

@ rdn87 ce code fonctionne lorsque vous ouvrez l'IDE avec des privilèges administratifs, mais au cas où je veux déployer mon application et en faire un jar runnable comment puis-je donner des privilèges d'administrateur jar? –

+0

@TonyThomas voir ce post: http://stackoverflow.com/questions/19037339/run-java-file-as-administrator-with-full-privileges/22110928#22110928 – rdn87

0

Votre machine virtuelle Java doit être en cours d'exécution avec admin-privilèges afin de lancer un processus avec admin-privilèges.

Créez votre code et exécutez-le en tant qu'administrateur - tous les processus engendrés par votre classe auront aussi des privilèges d'administrateur.

+0

Comment donner des privilèges administratifs à ma machine virtuelle Java? @ TheBigLou13 Je sais que je peux exécuter le programme en externe en tant qu'administrateur, mais comment le faire dans le code lui-même. –