2016-04-25 3 views
0

Ich verwende:Ausführung Runtime.getRuntime in Java schafft nicht JSON-Datei

try{ 
     Process p = Runtime.getRuntime().exec("/home/Desktop/crt_json); 
     p.waitFor(); 
    } catch (Exception ex) { 
    ex.printStackTrace(); 
    System.out.println("I caught: " + ex); 
    } 

eine C++ Datei crt_json namens auszuführen, die eine JSON-Datei erstellt. wenn ich es durch das Terminal laufen funktioniert perfekt, aber wenn ich es durch den Java-Code ausführen wird die JSON-Datei nicht erstellt. Auch ich weiß für eine Tatsache, dass das Programm crt_json ausgeführt wird, da es auch ein paar andere Dinge tut und es tut jeder einzelne von ihnen außer der Erstellung der JSON-Datei. Weiß jemand, wenn es ein Problem gibt, JSON-Dateien beim Ausführen einer C++ - Datei mit Laufzeit oder etwas zu erstellen?

+0

Wo erstellt es die Datei? Möglicherweise müssen Sie das aktuelle Arbeitsverzeichnis für den Prozess festlegen. – Thilo

+0

der Speicherort der Datei ist wichtig ... Java wird nicht in der Lage sein, eine Datei an einem Ort zu erstellen, wo es keine Berechtigungen zum Schreiben hat ... überprüfen, dass – Abhishek

+0

es bereits einige BMP-Dateien im selben Verzeichnis erstellt. Also ich vermute, es hat die Erlaubnis, Dateien an diesem Ort zu erstellen. Aber aus irgendeinem seltsamen Grund wird die .json nicht erstellt. – eliodorou

Antwort

0

Die c-Datei wurde im "aktuellen Ordner" erstellt und der aktuelle Ordner befand sich in einem verrückten Verzeichnis, also habe ich den Code geändert, damit ich ihn in einen Pfad meiner Wahl zwingen konnte.