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 :)
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. –