2016-06-08 6 views
0

J'ai écrit un fichier .bat (comme je teste sur Windows pour l'instant): - Appel MongoImport De Java

echo Program Starts mongoimport.exe --host 127.0.0.1 -d myDB -c things --type csv --file
D:\MOCK_DATA.csv --fields id,Name.f_name,Name.l_name,email,gender echo Program Ends

  • était le fichier .bat dans le dossier/bin de MongoDB.

  • Le fichier .bat fonctionne correctement si je l'appelle directement à partir de l'invite de commande Windows.

  • Mais lorsque j'appelle le fichier .bat à l'aide du programme Java, mongoImport ne s'exécute pas . Le programme ne donne pas non plus d'erreurs. Voici mon programme Java: -
    ProcessBuilder pb = new ProcessBuilder("Path to my .bat File"); Process process = pb.start(); BufferedReader is = new BufferedReader( new InputStreamReader(process.getInputStream())); StringBuilder builder = new StringBuilder(); String line = null; while ((line = is.readLine()) != null) { builder.append(line); builder.append(System.getProperty("line.separator")); } return builder.toString();

suivant est la sortie de la console Java: echo Program Starts Program Starts mongoimport.exe --host 127.0.0.1 -d myDB -c things --type csv --file D:\MOCK_DATA.csv --fields id,Name.f_name,Name.l_name,email,gender echo Program Ends Program Ends

Répondre

0
I found the solution to the problem. Following lines helped in identifying the error:- 
pb.redirectErrorStream(true); 
pb.redirectOutput(new File("D:\\output.txt")); 

The issue was that I didn't set the 'directory' where .bat file commands will run. 
pb.directory(new File("\\MongoDB\\Server\\3.2\\bin"));