2013-06-03 4 views
0

Я пытаюсь выполнить внешний файл .jar в моем Android SDK проекте так:Android SDK: выполнить внешнюю баночку

ProcessBuilder pb = new ProcessBuilder("java.exe", "-jar", "C:/apache-tomcat-7.0.27/BlattA/src/viewer.jar"); 
     Process process = pb.start(); 
     InputStream is = process.getInputStream(); 

     byte[] bytes = IOUtils.toByteArray(is); 

, когда я исполняю его в любом другом проекте Java EE он прекрасно работает, но в приложении для Android я получаю сообщение об ошибке: enter image description here

В чем причина и как его исправить?

+3

OMFG это невозможно! Android - это особый Linux, а не Windows. Даже есть еще один байт-код (dalvik VM), вы также не можете получить доступ к ресурсам с вашего компьютера с вашего телефона с помощью простого доступа к файлам. Даже если вы добавите это как libary, это не сработает, потому что на андроиде нет ни качания, ни другой общей работы с настольной системой. – rekire

+0

@rekire спасибо – IAM

ответ

1

Это невозможно!

Android - это своего рода специальный Linux и не поддерживает никаких функций Windows, таких как выполнение exe-файлов. О файле jar на Android есть дыра в другом байт-коде (dalvik VM), поэтому вы также не можете запускать файл jar, не преобразовывая его в так называемый файл dex. Вы также не можете получить доступ к ресурсам из своего компьютера с вашего телефона с помощью простого доступа к файлам.

Даже если вы хотите, чтобы это было чем-то вроде jar или grep как-то по воздуху или добавив эту банку как libary, это не сработает, потому что на Android нет Swing или другой общей инфраструктуры пользовательского интерфейса от настольной системы.

Что вы можете сделать, это посмотреть исходный код файла jar, например. с домашней страницы, если это проект с открытым исходным кодом, и понять, как это работает. Чем вы можете реализовать новое приложение для Android, которое выполняет эту работу. Но это тихая работа гораздо больше, чем вы сейчас думаете.

+0

, прежде чем я снова попытаюсь сделать какую-то бессмыслицу, если эта работа ?: Могу ли я открыть скрипт .php (размещенный на внешнем сервере, получить доступ к нему через http) из моего приложения для Android, и этот скрипт просто запустит выполнение банки (не нужно больше выводить программу)? – IAM

+0

Уверен, что вы можете вызвать какое-либо действие через http на стороне сервера :-) – rekire

Смежные вопросы