2015-06-14 8 views
0

Я пытаюсь запустить iperf-сервер и клиент на своем устройстве Android, поэтому я разрабатываю приложение с помощью exec(), и он отлично работает для ls, ping и т. д., но когда я пытаюсь запустить iperf -s У меня ошибка. Вот код, и я добавил разрешение на интернет в файле манифеста. Помогите оценитьКак правильно запустить команду iperf в Runtime.getRuntime(). Exec() android

Какой будет рабочий каталог и среда для команды iperf?

 StringBuffer output = new StringBuffer(); 

     Process p; 
     try { 
      p = Runtime.getRuntime().exec(command); 
      p.waitFor(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 

      String line = "";   
      while ((line = reader.readLine())!= null) { 
       output.append(line + "\n"); 
      } 

     } 

Я получил следующие ошибки

06-14 13:14:01.023: W/System.err(1465): java.io.IOException: Error  running exec(). Command: [iperf, -s] Working Directory: null Environment: null 
06-14 13:14:01.033: W/System.err(1465):  at java.lang.ProcessManager.exec(ProcessManager.java:211) 
06-14 13:14:01.033: W/System.err(1465):  at java.lang.Runtime.exec(Runtime.java:173) 
06-14 13:14:01.053: W/System.err(1465):  at java.lang.Runtime.exec(Runtime.java:246) 
06-14 13:14:01.053: W/System.err(1465):  at java.lang.Runtime.exec(Runtime.java:189) 
06-14 13:14:01.053: W/System.err(1465):  at com.learn2crack.androidshell.ShellExecuter.Executer(ShellExecuter.java:20) 
06-14 13:14:01.053: W/System.err(1465):  at com.learn2crack.androidshell.MainActivity$1.onClick(MainActivity.java:33) 
06-14 13:14:01.063: W/System.err(1465):  at android.view.View.performClick(View.java:4438) 
06-14 13:14:01.063: W/System.err(1465):  at android.view.View$PerformClick.run(View.java:18422) 
06-14 13:14:01.063: W/System.err(1465):  at android.os.Handler.handleCallback(Handler.java:733) 
06-14 13:14:01.063: W/System.err(1465):  at android.os.Handler.dispatchMessage(Handler.java:95) 
06-14 13:14:01.063: W/System.err(1465):  at android.os.Looper.loop(Looper.java:136) 
06-14 13:14:01.073: W/System.err(1465):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
06-14 13:14:01.073: W/System.err(1465):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-14 13:14:01.073: W/System.err(1465):  at java.lang.reflect.Method.invoke(Method.java:515) 
06-14 13:14:01.083: W/System.err(1465):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
06-14 13:14:01.083: W/System.err(1465):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
06-14 13:14:01.103: W/System.err(1465):  at dalvik.system.NativeStart.main(Native Method) 
06-14 13:14:01.113: W/System.err(1465): Caused by: java.io.IOException: Permission denied 
06-14 13:14:01.113: W/System.err(1465):  at java.lang.ProcessManager.exec(Native Method) 
06-14 13:14:01.113: W/System.err(1465):  at java.lang.ProcessManager.exec(ProcessManager.java:209) 
06-14 13:14:01.123: W/System.err(1465):  ... 16 more 
+0

Вы загрузили исходный файл или библиотеку iperf? – user1850484

ответ

0

Sound проблема разрешения проверить LogCat строку:

Caused by: java.io.IOException: Permission denied 

Может быть, вы можете попробовать выполнить двоичный Iperf во внешнем сд карты? попробуйте добавить разрешения для чтения/записи внешнего хранилища.