Wie kann ich ein batch file das ist in einem Jar file ist aufrufen ?

Code46

Erfahrenes Mitglied
Hi leute,

Ich habe da mal eine frage undzwar will ich ein Batch file das in einem Jar file ist in meinem Progra aufrufen. Wisst ihr wie das geht ?

Wenn ihr mir helfen könntet würde ich mich sehr freuen.

Danke
 
Runtime.getRuntime().exec(). Damit verlierst du die Plattformunabhängigkeit, aber das ist dir wahrscheinlich bewusst.
 
Was meinst du mit Plattformunabhängigkeit genau ?

Ja ich habe auch den selben code aber das funktioniert nicht so richtig.
Code:
Runtime.getRuntime().exec(new String[] { "cmd.exe", "/c", "server.bat" } );

Gibst da keine andere möglichkeit ?
 
Zuletzt bearbeitet:
Ok habe da mal eine andere frage . Ich habe ein Java Program das ich mit Netbeans geschrieben habe. Ich habe dieses Program nun Linux welches durch eine .exe aufgerufen wird ohne das ich Netbeans installiere.Wenn den Batch file dort aufrufen erkennt er das nicht.
Weis du wie ich das lösen könnte ?
 
Bitte noch mal etwas ausführlicher erklären. Da klingen einige Missverständnisse heraus:
1. Java ist nicht an Netbeans gebunden – dein Programm läuft ohne Netbeans genauso gut wie mit.
2. Unter Linux gibt es keine Batch-Files. Dort sind Shell-Scripts geläufig, genauso wie auf allen anderen Unixen (einschließlich BSD und Mac OS X).
3. Unter Unix/Linux brauchen Programme keine Dateiendung .exe .
Was willst du per Shell-Script realisieren?
 
Also noch mal. Ich versuche eigentlich nur das Program ohne Netbeans laufen zu lassen.
Also ich klicke auf das Jar file und dann öffnet sich mein Program. Wenn ich habe versuche mein script zum laufen zu bringen und das die ausgaben im Textarea anzeigen soll macht er das aber leider nicht.
Ja in Windows rufe ich eine .bat file auf und in Linux .sh file.

Hier mein Code:

Code:
        if (e.getSource() == logical) {
            int confirm = showConfirmDialog(this, "Perform Logical Extraction of UserData only?");
            if (confirm == 0) {
                showMessageDialog(this, "Please ensure the device is plugged in"
                        + "\nand USB Debugging is enabled");

                InputStream stream = WinExtract.class.getResourceAsStream("CONTENT/Scripts/Test.bat");

                if (stream == null) {
                    JOptionPane.showMessageDialog(null, "Resource not located.");
                }
                Scanner input = null;
                try {
                    input = new Scanner(stream);
                    String str = stream.toString();
                    //   String str = info.getText();
                    //  Process child = Runtime.getRuntime().exec(str);
                    Process child = Runtime.getRuntime().exec(str);
                    InputStream lsOut = child.getInputStream();
                    InputStreamReader r = new InputStreamReader(lsOut);
                    BufferedReader in = new BufferedReader(r);
                    String line;
                    while ((line = in.readLine()) != null) {
                        info.append(line + "\n");
                    }
                    /*  input = new Scanner(stream);
                    while (input.hasNextLine()) {
                    info.append(input.nextLine() + "\n");*/
                } catch (Exception Process) {
                    JOptionPane.showMessageDialog(null,
                            "Please check the script and try again",
                            "Command Failed!", ERROR_MESSAGE);
                }
            }
 
Der Fehler liegt wohl beim Extrahieren der Datei. Und ob das Shell-Script die Dateiendung .sh hat, sollte eigentlich völlig egal sein. Ich fürchte eher, dass die Datei nicht gefunden werden kann und deswegen nicht exportiert wird. Gibts Fehlermeldungen (von der Konsole aus starten!)? Der Pfad in der Zeile
Java:
  InputStream stream = WinExtract.class.getResourceAsStream("CONTENT/Scripts/Test.bat");
sollte falsch sein. Normalerweise wird der Pfad nach java-Paketen angegeben. Genaueres findet sich irgendwo hier im Forum…
Und geb mal deine Exception aus, wenn du sie abfängst (nur so zum Testen)
 
Kannst du mir vielleicht ein beispiel dazu geben. Ich habe nicht genau verstanden was du mit dem Pfad nach Java Paketen meinst ?

Danke
 

Neue Beiträge

Zurück