Android SDK:执行外部jar

时间:2013-06-03 12:53:04

标签: android jar processbuilder

我正在尝试以这种方式在我的Android SDK项目中执行外部.jar文件:

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

原因是什么以及如何解决?

1 个答案:

答案 0 :(得分:1)

根本不可能!

Android是某种特殊的Linux,并不支持执行exe文件等任何Windows功能。关于Android上的jar文件是一个漏洞其他字节码(dalvik VM)所以你也不能运行jar文件而不将其转换为所谓的dex文件。您也无法通过简单的文件访问权限从手机访问电脑上的资源。

即使你不知道那个jar或grep它在空中或者通过添加jar作为libary,这将无法工作因为在Android上没有Swing或来自桌面系统的其他常见UI框架。

你可以做的是查看jar文件的源代码,例如从主页,如果这是一个开源项目,并了解它是如何工作的。你可以实现一个新的Android应用程序来完成你想要的工作。但是这比你现在想象的要安静得多。