2013-05-06 7 views
0

J'ai créé ce code pour déplacer un dossier puis le relier à sa destination d'origine. Le problème est que ça fonctionne quand je l'essaie juste depuis eclipse mais quand je le fais dans son propre pot d'exécution, il ne créera pas le lien mais il déplacera le dossier. Le code exécute une ligne de commande, puis entre les commandes. Je ne sais pas ehy la commande de déplacement fonctionne et pas l'autre. S'il vous plaît aider. (commande Mklink)Exécution des commandes CMD à partir de JAVA

import java.io.*; 
import javax.swing.JOptionPane; 

public class The_Cloud_Setup { 
    public static void main(String[] args) throws IOException 
    { 
     try { 
      String command = "c:\\cmd.exe"; 
      Runtime.getRuntime().exec(command); 
     } 
     catch (IOException e){ 
      JOptionPane.showMessageDialog(null , e.getMessage(), "End Result", 2); 
      System.err.println(e.getMessage()); 
     } 
     String[] StringMove = { "cmd.exe", "/c", "move"+" "+"\"C:/Users/%username%/Documents/My Games/Terraria/Players\""+" "+"\"C:/Users/%username%/Google Drive/Players\""}; 
     String[] StringMklink = {"cmd.exe", "/c", "mklink"+" "+"/d"+" "+"\"C:/Users/%username%/Documents/My Games/Terraria/Players\""+" "+"\"C:/Users/%username%/Google Drive/Players\""}; 
     Process ProcessMove = Runtime.getRuntime().exec(StringMove); 
     Process ProcessMklink = Runtime.getRuntime().exec(StringMklink); 
     BufferedReader VarMove = new BufferedReader(new InputStreamReader(ProcessMove.getInputStream())); 
     BufferedReader VarMklink = new BufferedReader(new InputStreamReader(ProcessMklink.getInputStream())); 
     String temp = ""; 
     while ((temp = VarMove.readLine()) != null) { 
      System.out.println(temp); 
     } 
     VarMove.close(); 
     VarMklink.close(); 
    } 
} 
+0

Vous devez démarrer les noms de variables en minuscules, conformément aux conventions Java. –

Répondre

0

Très probablement, lorsque vous exécutez en mode natif, la commande move n'a pas terminé avant que votre programme tente d'exécuter la commande mklink. Vous ne pouvez pas créer un lien contenant un dossier existant.

+0

Oui et non je l'ai juste plié dans un exe que je peux courir comme admin et bam cela a fonctionné mais merci quand même – RexPRGMER

Questions connexes