2013-06-03 102 views
0

我想在我的Android SDK項目執行外部.jar文件是這樣的:當我在其他任何Java EE項目它完美地執行它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); 

,但在Android應用程序中出現錯誤: enter image description here

原因是什麼?我該如何解決?

+3

OMFG根本不可能! Android是一個特殊的Linux而不是Windows。即使有其他字節碼的漏洞(dalvik VM),您也無法通過簡單的文件訪問從手機訪問電腦上的資源。即使你將這添加爲libary,這將無法正常工作,因爲android是沒有擺動的或桌面系統的另一個常見ui framtwork。 – rekire

+0

@rekire謝謝 – IAM

回答

1

這根本不可能!

Android是一種特殊的Linux,不支持任何Windows功能,如執行EXE文件。關於Android上的jar文件是其他字節碼(dalvik VM)的漏洞,因此如果不將其轉換爲所謂的dex文件,您也不能運行jar文件。您也無法通過簡單的文件訪問從手機訪問您的電腦上的資源。

即使您將dex那個jar或grep它以某種方式在空中或通過添加該jar作爲libary這不會工作,因爲在Android上沒有Swing或桌面系統的另一個常見的UI框架。

你可以做的是看看jar文件的源代碼,例如從主頁如果這是一個開源項目,並瞭解它是如何工作的。比你可以實現一個新的Android應用程序,它可以完成你想要的工作。但是,這比現在想象的要安靜得多。

+0

在我嘗試再次做一些廢話之前,應該如何工作?: 我可以從我的Android應用程序打開一個.php腳本(放置在外部服務器上,通過http訪問它),然後此腳本將啓動jar的執行(不需要再輸出程序)? – IAM

+0

當然你可以在服務器端通過http觸發一些操作:-) – rekire