如何在Android上运行普通的Java应用程序

5
我希望在Android上运行一个Java应用程序,它没有用户界面,并嵌入了Jetty作为servlet容器。它实现了一个Web应用程序,通常由其用户在线访问,但我需要在Android平板上离线运行它。
这是否有可能?我所能找到的信息都是关于如何开发Android应用程序的。我只是想要相当于“java -jar ...”的等效物,任何信息都将受到欢迎。
3个回答

3

在Android中没有这个功能的等价物。Android使用的是DVM而不是普通的JVM,它基于Apache Harmony

无论如何,您都需要重新编译应用程序,因为DVM只执行Dalvik-Bytecode,而这是通过随Android SDK一起提供的dx工具从普通Java-Bytecode创建的。

另外,为什么您需要在平板电脑上运行服务器应用程序呢?


在某些情况下,您可能需要在移动设备上安装服务器应用程序。例如,如果您想远程访问平板电脑,您可以考虑在平板电脑上安装VNC服务器等选项。只有在平板电脑上运行服务器才能实现这样的功能。 - Saurabh
远程控制Android平板电脑...我不知道:D 用Android平板电脑远程控制其他设备对我来说更有意义:D 而且,我认为使用套接字应该可以实现这一点。 - Lukas Knuth
2
服务器应用程序的核心是一个仅监听套接字请求的组件。例如,请参阅此https://market.android.com/details?id=org.onaips.vnc&feature=search_result 应用程序。 - Saurabh
@saury 这看起来真的很酷,我不知道自 Android 3.2 以来就有屏幕捕获 API。我现在正在阅读源代码。 - Lukas Knuth
这是一个Web应用程序,允许用户使用连接的PC /笔记本电脑上的浏览器采访人员。我们有一个离线选项,可以在本地笔记本电脑上运行服务器,然后在其中浏览到localhost。现在我们需要用Android平板电脑替换笔记本电脑,因此我需要在那里运行服务器。它是一个普通的Java应用程序,没有UI(HTTP,文件IO和Xalan用于XML内容是主要依赖项)。 - Silvio Bierman
@SilvioBierman 您可以尝试,但是您需要在 Android 项目中重新编译它们。 如果这样做成功了,那就没有问题了。 - Lukas Knuth

2

通常情况下,您无法直接运行Java代码,甚至Android设备没有Java虚拟机。您需要重新编译应用程序并将其转换为dex格式,然后由Dalvik VM使用。当然,是否容易这样做取决于您使用的API,因为Android仅具有Java SE API的子集。


0

尝试使用GNURoot应用程序(proot ptrace容器)与debian Wheezy;
apt-get update
apt-get install openjdk-7-jre
/usr/lib/jvm/java-7-openjdk-armel/jre/bin/java ...
(包括长路径)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接