我正在尝试以这种方式在我的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应用程序中我收到错误:
原因是什么以及如何解决?
答案 0 :(得分:1)
根本不可能!
Android是某种特殊的Linux,并不支持执行exe文件等任何Windows功能。关于Android上的jar文件是一个漏洞其他字节码(dalvik VM)所以你也不能运行jar文件而不将其转换为所谓的dex文件。您也无法通过简单的文件访问权限从手机访问电脑上的资源。
即使你不知道那个jar或grep它在空中或者通过添加jar作为libary,这将无法工作因为在Android上没有Swing或来自桌面系统的其他常见UI框架。
你可以做的是查看jar文件的源代码,例如从主页,如果这是一个开源项目,并了解它是如何工作的。你可以实现一个新的Android应用程序来完成你想要的工作。但是这比你现在想象的要安静得多。