samedi 7 février 2015

Runtime.exec() verursacht auf manchen Systemen Probleme - Ursache unklar

Hi,



folgender Quellcode (Die Alerts sind nur für Debugging zwecke reinkopiert)




Java Code:






  1. private void upload() {



  2. try {



  3. Process process = Runtime .getRuntime().exec(new String []{"cmd.exe", "/C ", batchDataFile});



  4. try {



  5. process.waitFor();



  6. //new File(sourceCodeFile).delete();



  7. //new File(batchDataFile).delete();



  8. //new File(sourceCodeFolder).delete();



  9. process.destroy();



  10. //Create an Alert (Supportet since JDK8u40)



  11. Alert alert = new Alert(Alert.AlertType.ERROR);



  12. //Disable Header Text



  13. alert.setHeaderText(null);



  14. //Disable OS frame



  15. alert.initStyle(StageStyle.UNDECORATED);



  16. alert.setContentText(



  17. "ausgeführt"



  18. );



  19. alert.showAndWait();



  20. } catch (InterruptedException ex) {



  21. Logger.getLogger(ArduinoCompiler.class.getName()).log(Level.SEVERE, null, ex);



  22. //Create an Alert (Supportet since JDK8u40)



  23. Alert alert = new Alert(Alert.AlertType.ERROR);



  24. //Disable Header Text



  25. alert.setHeaderText(null);



  26. //Disable OS frame



  27. alert.initStyle(StageStyle.UNDECORATED);



  28. alert.setContentText(



  29. "Error catch innen"



  30. );



  31. alert.showAndWait();



  32. }



  33. } catch (IOException ie) {



  34. //Create an Alert (Supportet since JDK8u40)



  35. Alert alert = new Alert(Alert.AlertType.ERROR);



  36. //Disable Header Text



  37. alert.setHeaderText(null);



  38. //Disable OS frame



  39. alert.initStyle(StageStyle.UNDECORATED);



  40. alert.setContentText(



  41. "error catch aussen"



  42. );



  43. alert.showAndWait();



  44. }



  45. }









So das Problem ist nun das das BatchFile was ausgeführt werden soll, auf meinem Laptop funktioniert (aus der App heraus) und bei dem Laptop eines Kollegen nicht. (Das Batch ansich funktioniert jedoch das wurde getestet) Selbigs gilt für eine VM auf dem selben Rechner, aus der App startet das Skript nicht, beim direktaufruf schon.



Es wird jedoch das Alert mit dem "Ausgeführt" Text aufgerufen. Die App/Methode wirft also kein Exception, dennoch führt sie nur auf einem Laptop das Skript aus.



Ich bin ratlos hoffe auf anregungen



Ps.: Das Batchskript ist zur interaktion mit dem arduino microcontroller und funktioniert wie gesagt beim direkten öffnen ohne probleme





Runtime.exec() verursacht auf manchen Systemen Probleme - Ursache unklar

0 commentaires:

Enregistrer un commentaire