Mit Java anderes Java Programm starten

BambiMC

Mitglied
Mein Code:
Process x = Runtime.getRuntime().exec("javac " + file.getAbsolutePath() +" & "+ "cd " + filedestination +" & "+ "java " + real2 + " > " + file2.getAbsolutePath());

1. Ich weiss, dass die Variablennamen total dumm gewählt sind, soooorry (ich versuch daran zu arbeiten 🙂)
2. Es geht einfach nur darum, dass wenn er durch den obenstehenden Code ausgeführt wird, nichts passiert, allerdings wenn ich denselben command mir mit sysout ausgeben lasse und es dann manuell in nem cmd-Fenster mache, es einwandfrei funktioniert...
Befehl: "javac C:\Users\fabia\Dropbox\EntwicklungsOrdner\SimpleMatics\test1.java & cd C:\Users\fabia\Dropbox\EntwicklungsOrdner\SimpleMatics\ & java test1 > C:\Users\fabia\Dropbox\EntwicklungsOrdner\SimpleMatics\ausgabe1.txt"

Hat irgendwer ne Idee, wie ich da weiterkomme?

Mit allerliebsten Grüßen,
Fabi <3
 
& und > sind Befehle der Shell, die kannst du so nicht in einem exec ausführen. Letzteres könnte auch für cd gelten, da weiß ich nicht, was bei einem ausführen aus Java heraus passiert.

Du wirst die einzelnen Teile selbst nachbauen müssen, oder schreibst ein entsprechendes Script, was du dann aus Java aufrufst.
 
Eine Möglichkeit ist. Der erstellst eine Script mit deinen Befehlen und startest diesen Script. Shell/Batch was auch immer.

Alles andere hat der mrBrown schon erwähnt.

Grüße
 
Das folgende Programm schreibt eine bat-Datei.
Java:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class Hauptprogramm {

    public static void main(String[] args) {

        PrintWriter pWriter = null;

        try {

            // Schreibt die Datei. append ist auf false gesetzt.
            FileWriter fw = new FileWriter("datei.bat", false);

            BufferedWriter bw = new BufferedWriter(fw);
            pWriter = new PrintWriter(bw);

            pWriter.println("javac C:\\Users\\fabia\\Dropbox\\EntwicklungsOrdner\\SimpleMatics\\test1.java & cd C:\\Users\\fabia\\Dropbox\\EntwicklungsOrdner\\SimpleMatics\\ & java test1 > C:\\Users\\fabia\\Dropbox\\EntwicklungsOrdner\\SimpleMatics\\ausgabe1.txt");
         
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (pWriter != null) {
                pWriter.flush();
                pWriter.close();
            }

        }            
             
    }
}
Die Datei kann per Doppelklick gestartet werden. Jetzt musst du noch herausfinden wie du die Datei mithilfe von deinem Java-Programm starten kannst. Folgendes scheint nicht zu funktionieren:
Java:
        try {
            Process x = Runtime.getRuntime().exec("C:\\Users\\fabia\\Dropbox\\EntwicklungsOrdner\\MeinOrdner\\datei.bat");
        } catch (IOException e) {
            e.printStackTrace();
        }
 

Neue Themen


Zurück
Oben