在android中运行可执行jar

时间:2012-10-15 22:38:31

标签: java android jar

是否可以在android中运行可执行jar文件(基于命令行)? 我的一个朋友告诉我,可以运行用C编写的可执行文件。是否有可能是java?我将通过adb shell运行该工具。

6 个答案:

答案 0 :(得分:7)

Android使用Dalvik VM,而您需要Java VM来运行jar文件。所以不,你不能在android上运行jar文件。

答案 1 :(得分:3)

您可以通过adb安装构建为APK的应用:

adb install my_apk_file.apk

一旦进入adb shell,您就可以使用am命令启动APK应用程序。见How to start an application using android ADB tools?

但我不认为有一种方法可以在桌面操作系统上直接运行jar文件,因为Android不使用标准Java VM。

我认为您需要将.jar文件嵌入到调用jar并将结果打印到stdout的最小Android应用程序中。然后你将构建该APK并按照我的描述安装/运行它。

答案 2 :(得分:2)

在Android中运行jar的唯一问题是JVM,它在Android下是一个无法运行JSE编译的java程序的Dalvik VM。

然而,您可以使用在Android下运行整个JSE JVM的JBed:http://jbed.en.malavida.com/android/

答案 3 :(得分:1)

实际上,您可以通过UI Automator运行java代码。 创建一个jar,添加junit样式类,然后通过UI Automator运行它。

答案 4 :(得分:0)

  

是否可以在以下位置运行可执行的jar文件(基于命令行)   机器人?

可能的话,请检查“ adb shell输入” shellscript->“ exec app_process”

shell@flo:/ $ ls -l /system/bin/input                                          
-rwxr-xr-x root     shell         203 2015-11-10 01:44 input

https://android.googlesource.com/platform/frameworks/base/+/oreo-release/cmds/input/input

# Script to start "input" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/input.jar
exec app_process $base/bin com.android.commands.input.Input "$@"

答案 5 :(得分:0)

您无法像在jar files上运行android一样直接在android中运行Dalvik Virtual Machine,而要运行jar文件,您将需要Java Runtime Environment,其具有Java Virtual Machine

注意:您将需要root访问权限和具有root访问权限的文件管理器:
但是您可以运行它,为此,您必须安装应用程序Jbed.apk并将lib jbed.so复制到您的system\lib文件夹中。然后,您可以从Android设备上的应用程序运行jar / jad文件。

这是jbed的链接:http://jbed.en.malavida.com/android/

在此处阅读有关XDA开发人员的完整文章: XDA Developers, Run jar/jad on Android

很少有文章声称有将jar转换为apk的方法,我自己还没有尝试过: jar to apk 如果它不起作用,则可能需要使用仿真器: