Salut,
Je tente d'utiliser Runtime.exec pour appeler le binaire mysql afin de charger un fichier dans une base de données.

J'ai tenté toute ces syntaxes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
    	String sqlFiles = "H:/workEclipse/project/sql";
//    	String[] cmd = {MYSQL_PATH , "-h "+ DATABASE_HOST ,  "-u " +DATABASE_LOGIN , "--password="+DATABASE_PASSWORD , "-D "+DATABASE_DB , "< "+ "./test.sql"  }; 
//    	String[] cmd = {MYSQL_PATH , "-h" , DATABASE_HOST ,  "-u"  ,DATABASE_LOGIN , "--password="+DATABASE_PASSWORD , DATABASE_DB , "<", sqlFiles+"/henna.sql"  }; 
//    	String[] cmd = {MYSQL_PATH , "-h" , DATABASE_HOST ,  "-u"  ,DATABASE_LOGIN ,"-D", DATABASE_DB , "< "+ sqlFiles+"/henna.sql"  };
// Et tout en dur... Qui fonctionne dans une fenêtre Dos
    	String[] cmd = {"\"C:/Program Files/wamp/mysql/bin/mysql\" -h localhost -u root --password=xxx -D maBase < H:/workEclipse/project/sql/test.sql"};
process = runtime.exec(args, null, null);
Soit j'obtiens l'aide de mysql dans tous les premiers cas, soit j'obtiens une IllegalArgumentException dans le dernier cas ou tout est en dur.

Cette commande fonctionne par contre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	String[] cmd = {MYSQL_PATH , "-h" , DATABASE_HOST ,  "-u"  ,DATABASE_LOGIN ,"--password="+DATABASE_PASSWORD ,"-D", DATABASE_DB , "-e","DROP TABLE test"  };
Mais j'aimerais loader un fichier, donc ca ne me suffit pas.

Ce serait sans doute le "<" qui n'est pas apprécié ? Quelqu'un a t'il une idée ?