【问题标题】:Is it possible to install the JDK on an android device?是否可以在 android 设备上安装 JDK?
【发布时间】:2016-08-01 01:27:59
【问题描述】:

我希望能够在 android 终端 termux 中编译和运行基本的 Java 应用程序。我检查了终端 IDE,但它与 Android 5.0+ 不兼容。此外,我尝试从 Oracle 的网站安装 arm64 jdk,android 无法识别。我正在运行 CM 13,澄清一下,我希望能够直接从我的手机运行 javac 和 java 之类的命令。

【问题讨论】:

  • 我希望能够直接从我的手机运行 javac 和 java 之类的命令 简答; 没有。更长的答案;也许如果你想运行一个完整的系统模拟器,但它会 slow.
  • 哪个模拟器就足够了,我将如何实现它。我的手机有一个不错的处理器,所以我想试试模拟器
  • 看到这个Reddit
  • Google 很有希望在未来为OpneJDK 项目做出贡献。所以我们应该在 Android 上看到新的 Java 特性,但这只是关于 Java 语言特性。 Google 仍然可以保留一些自己的专有二进制格式,例如 dex 现在。这是一个问题,你能找到多少javac 和其他工具。但拥抱OpenJDK 是一个很有希望的方向。
  • 如果将 OpenJDK 集成到 Android N 中将确保能够直接在终端中运行它,那就太好了,但从历史上看,谷歌已经为 android 进行了许多 java 更新,这些更新仅用于 android 应用程序开发的目的而不是java开发。我想在那之前我们永远无法确定在android中直接访问jdk命令的状态。

标签: java android


【解决方案1】:

如果你有Termux,你可以下载deb文件here,用apt-get install /path/to/deb安装。为 arm 下载和安装 JRE 和 JDK 的命令:

cd ~ # Change to home directory
apt-get install -y wget # BusyBox wget doesn't support HTTPS
hash -d wget # Forgets the BusyBox wget path so new one is used
wget https://archive.org/download/openjdk-9-jre-headless_9.2017.8.20-1_x86_64/openjdk-9-jre-headless_9.2017.8.20-1_arm.deb # Download JRE
wget https://archive.org/download/openjdk-9-jre-headless_9.2017.8.20-1_x86_64/openjdk-9-jdk-headless_9.2017.8.20-1_arm.deb # Download JDK
apt-get install -y ./openjdk-9-jre-headless_9.2017.8.20-1_arm.deb ./openjdk-9-jdk-headless_9.2017.8.20-1_arm.deb # Install the files
rm openjdk-9-*.deb # Remove the files after because they're huge

或单行复制粘贴:

cd ~ && apt-get install -y wget && hash -d wget && wget https://archive.org/download/openjdk-9-jre-headless_9.2017.8.20-1_x86_64/openjdk-9-jre-headless_9.2017.8.20-1_arm.deb && wget https://archive.org/download/openjdk-9-jre-headless_9.2017.8.20-1_x86_64/openjdk-9-jdk-headless_9.2017.8.20-1_arm.deb && apt-get install -y ./openjdk-9-jre-headless_9.2017.8.20-1_arm.deb ./openjdk-9-jdk-headless_9.2017.8.20-1_arm.deb && rm openjdk-9-*.deb

要为其他架构安装,请将出现的“arm”替换为正确的架构。有“arm”(大多数 32 位手机)、“aarch64”(ARM64/armv8,大多数 64 位手机)、“i686”(x86)和“x86_64”的文件。大多数手机都有 arm 或 aarch64。我相信 arm 版本至少应该适用于 aarch64(可能是错的?),所以 arm 应该适用于几乎所有人。但是,如果您知道您的设备有什么,请改用它。

编辑:要找到您设备的架构,请从 Termux 运行 uname -m

【讨论】:

    【解决方案2】:

    @moderatelygood 转到 Google Play 商店并下载 GNURoot Debian。它是一个 fakeroot,即终端仿真器。 Play Sore 中提供了许多其他终端仿真器,但这个 ine 非常好。它位于https://github.com/corbinlc/GNURootDebian,网站是http://corbinlc.github.io/GNURootDebian 你可以下载很多这样的包:

    apt-get 更新

    apt-get install default-jdk

    apt-get 安装 python

    等等。

    您将能够编译/运行这些语言的程序。使用一些文本编辑器编写程序,例如 Jota 文本编辑器,Play Store 中也有。

    【讨论】:

      【解决方案3】:

      实际上,如果您只对javacjavajar 感兴趣,可以使用终端。也就是说,你可以在 Lollipop 上使用这三个。我在 Android 5.1.1 上使用终端 IDE,它按预期工作。可用版本可以在https://www.dropbox.com/s/h2d23ecbrt2akeu/terminalide-2.02-binary-mod-signed.apk?dl=0 找到。如果您想尝试一下,请打开此 mod 终端并执行以下操作:cp /system/lib/libjavacrypto.so ~/system/lib,复制此库应该可以完成工作(为我完成),让 javadx 命令正常工作。

      【讨论】:

      • 不幸的是,您发布的链接给出了 404 错误。我认为它已经过时了,但如果您可以验证和/或更新链接,那就太好了。
      • apk 文件下载,但是 Install System 在选中和未选中覆盖时抛出 java io 异常
      • 如果您在安装本MOD之前已经安装了Terminal IDE,它将无法工作,在这种情况下卸载之前的版本,然后安装MOD
      • 一加 2 运行 CM 13,基于 Android 6.0
      【解决方案4】:

      该死的 Termux 解决方案: https://github.com/MasterDevX/Termux-Java 一个命令安装,你可以用 Java 做任何你想做的事情

      【讨论】:

        猜你喜欢
        • 2022-01-15
        • 2018-11-23
        • 2018-01-06
        • 2016-11-01
        • 1970-01-01
        • 2016-02-16
        • 2021-12-17
        • 2015-06-21
        • 2013-03-27
        相关资源
        最近更新 更多