2016-07-29 21 views
0

Ich versuche, eine App von meinem Android-Handy mit Java-Programm zu extrahieren. der Code, der meine Batch-Datei aufruft ist: -Batch-Datei läuft bei der Ausführung meines Programms auf Eclipse aber das Problem hat, wenn JAR-Datei verwendet wird

public static void batch(String a,String b) throws InterruptedException 
    { 
    try { 
     fchooser fc=new fchooser(); 
     String fg=fc.antd; 
     String arg1=a; 
     String userinp1=b; 
     String dir=System.getProperty("user.dir");; 


     JOptionPane.showMessageDialog(null, "this is batchrun and path is "+fg); 


    Process pan = Runtime.getRuntime().exec(new String[] {"C:\\test1.bat",arg1,fg}); 

     pan.waitFor(); 
     ............ 

arg1 und fg sind zwei Argumente, die Ii auf die Batchdatei übergeben.

arg1= /system/app/Chrome 
fg= C:\Users\sumeet.p1\Desktop\test2 

Die Batch-Datei ist

cd %2 
adb pull %1 
pause 

In Eclipse, das Programm läuft gut und extrahiert die Datei auf die loaction in fg angegeben [in diesem Fall - C: \ Benutzer \ sumeet.p1 \ Desktop \ test2], aber wenn ich eine JAR-Datei dieses Programms verwende, werden die Dateien in den Ordner extrahiert, in dem JAR-Dateien aufbewahrt werden, und nicht auf den in fg angegebenen Speicherort. Jede Hilfe wäre willkommen. Danke :)

+0

Siehe auch [Wenn Runtime.exec() nicht] (http://www.javaworld.com/article/2071275/ core-java/when-runtime-exec --- won-t.html) für viele gute Tipps zum korrekten Erstellen und Bearbeiten eines Prozesses. Dann ignoriere es auf 'exec' und verwende einen' ProcessBuilder' um den Prozess zu erstellen. Unterteilen Sie auch einen 'String arg' in' String [] args', um Dinge wie Pfade mit Leerzeichen zu berücksichtigen. –

Antwort

0

Ich vermute, das Problem ist mit der cd %2 Zeile in Ihrem Batch-Skript. Möglicherweise wird das Verzeichnis nicht wie erwartet geändert, wenn Sie es in der Befehlszeile jar ausführen, da das Laufwerk geändert wurde.

Bitte sehen, ob es zu cd /d %2 Werken zu ändern, wie unten dargestellt:

cd /d %2 
adb pull %1