【问题标题】:JDK availability in Cloud FoundryCloud Foundry 中的 JDK 可用性
【发布时间】:2017-09-23 03:58:47
【问题描述】:

我正在尝试从 Cloud Foundry Java 应用程序中调用 javac 以在应用程序运行时编译 java 文件。我有一个关于正在使用哪个 JDK 的问题。

为了测试这一点,在我的应用程序中,我使用语句 ToolProvider.getSystemJavaCompiler() 实例化了一个 JavaCompiler 并打印出编译器实例。该应用部署在 CF 上并打印出:com.sun.tools.javac.api.JavacTool@2e68d3ad

以下内容来自日志。

-----> Java Buildpack 版本:v3.13 | https://github.com/cloudfoundry/java-buildpack.git#03b493f 2017-04-24T13:23:21.38-0700 [STG/0] OUT -----> 从https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_121.tar.gz 下载 Open Jdk JRE 1.8.0_121 (0.5s) 2017-04-24T13:23:22.48-0700 [STG/0] OUT 将 Open Jdk JRE 扩展为 .java-buildpack/open_jdk_jre (1.0s)

两个问题:

  1. 假设 JDK 在 Cloud Foundry 上始终可用是否安全,所以我可以使用 javac。
  2. 为什么在我的代码中实例化的编译器引用了 Sun 的 javac?我期待 OpenJDK JDK(即使日志说只下载了 JRE)。

任何见解将不胜感激。谢谢。 -米歇尔

【问题讨论】:

    标签: java cloud javac cloud-foundry openjdk


    【解决方案1】:

    假设 JDK 在 Cloud Foundry 上始终可用是否安全,所以我可以使用 javac。

    构建包未安装javac 实用程序。如果您仔细查看它正在安装的内容,您会发现它正在安装 JRE 而不是 JDK。 JRE 只是运行时,不包含javac。

    2017-04-24T13:23:21.38-0700 [STG/0] OUT -----> 从https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_121.tar.gz (0.5s) 下载 Open Jdk JRE 1.8.0_121

    注意它是如何说“Open JDK JRE”的。 “Open JDK”是 Java 实现的名称,“JRE”是类型。

    您可以通过在使用 Java 构建包部署的应用程序中运行 cf ssh 来确认。如果您查看/home/vcap/app/.java-buildpack/,您可以看到所有已安装的内容。

    这就是我在bin 目录下看到的全部内容。

    ~/app/.java-buildpack/open_jdk_jre$ ls bin/
    java                                            jcmd  jmap    keytool      orbd     policytool  rmiregistry  tnameserv
    java-buildpack-memory-calculator-2.0.2_RELEASE  jjs   jstack  killjava.sh  pack200  rmid        servertool   unpack200
    

    为什么在我的代码中实例化的编译器引用了 Sun 的 javac?我期待 OpenJDK JDK(即使日志说只下载了 JRE)。

    我怀疑是因为 OpenJDK 是从 Sun 出来的,所以还是有一些共同的遗产。

    https://en.wikipedia.org/wiki/OpenJDK#History

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    相关资源
    最近更新 更多