我只是想从一个特定的文件夹执行我的文件。 在我的情况/数据/数据/我的包/文件/。 所以我尝试:
Process process2=Runtime.getRuntime().exec("cd /data/data/my-package/files/");
process2.waitFor();
process2=Runtime.getRuntime().exec("./myfile");
它不工作。 任何人都可以请告诉我这样做的正确方法。 谢谢
我只是想从一个特定的文件夹执行我的文件。 在我的情况/数据/数据/我的包/文件/。 所以我尝试:
Process process2=Runtime.getRuntime().exec("cd /data/data/my-package/files/");
process2.waitFor();
process2=Runtime.getRuntime().exec("./myfile");
它不工作。 任何人都可以请告诉我这样做的正确方法。 谢谢
应该可以调用可执行程序使用一个特定的工作目录Runtime.exec(String command, String[] envp, File dir)
如下:
Process process2=Runtime.getRuntime().exec("/data/data/my-package/files/myfile",
null, new File("/data/data/my-package/files"));
也许没有完整路径myfile
Process process2=Runtime.getRuntime().exec("myfile",
null, new File("/data/data/my-package/files"));
Context#getFilesDir()
而不是硬编码的路径应太和更安全/比你指定的路径,因为它不能保证清洁剂/data/data/..
始终是所有设备的正确路径。
Process process2=Runtime.getRuntime().exec("myfile",
null, getFilesDir()));
这个问题cd somewhere
是该目录变更为不同的过程,从而第二次调用exec
一个新的进程并没有看到改变。
它为我,当我使用下面的重载方法:
公共过程EXEC(字符串命令,字符串[] envp,文件DIR)
例如:
File dir = new File("C:/Users/username/Desktop/Sample");
String cmd = "java -jar BatchSample.jar";
Process process = Runtime.getRuntime().exec(cmd, null, dir);
该命令只存储要在命令行中运行该命令。 dir
只是存储要执行的.jar文件的路径。