14

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

4

5 回答 5

9

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

于 2012-10-15T22:53:11.313 回答
5

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

adb install my_apk_file.apk

一旦进入 adb shell,您就可以使用该am命令启动一个 APK 应用程序。请参阅如何使用 android ADB 工具启动应用程序?

但我认为没有办法像在桌面操作系统上那样直接运行 jar 文件,因为 Android 不使用标准的 Java VM。

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

于 2012-10-15T22:53:23.750 回答
5

是否可以在 android 中运行可执行的 jar 文件(基于命令行)?

可能,检查“adb shell input” 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 "$@"
于 2019-04-01T22:34:21.910 回答
4

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

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

于 2013-05-28T08:18:20.253 回答
0

您不能直接jar files在 android 中运行,因为 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 开发人员,在 Android 上运行 jar/jad

很少有帖子声称有办法将 jar 转换为 apk,我自己没有尝试过: jar to apk 如果它不起作用,您可能需要使用模拟器:

于 2020-11-30T06:02:38.647 回答