我试图从Cloud Foundry Java应用程序中调用javac,以在应用程序的运行时期间编译java文件。我有一个关于使用哪个JDK的问题。Cloud Foundry中的JDK可用性
为了测试这个,在我的应用程序中,我使用语句ToolProvider.getSystemJavaCompiler()实例化了一个JavaCompiler并打印出编译器实例。该应用程序部署在CF上并打印出来:[email protected]
以下内容来自日志。
-----> Java Buildpack版本:v3.13 | https://github.com/cloudfoundry/java-buildpack.git#03b493f 2017-04-24T13:23:21.38-0700 [STG/0] OUT ----->正在下载打开Jdk JRE 1.8.0_121从https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_121.tar.gz(0.5s) 2017-04-24T13:23:22.48 -0700 [STG/0] OUT扩大开放jdk的JRE到的.java-buildpack/open_jdk_jre(1.0秒)
两个问题:
- 它是安全的假设JDK始终可用在Cloud Foundry,所以我可以使用javac。
- 为什么编译器在我的代码中实例化是指Sun的javac?我曾期待过OpenJDK JDK(即使日志说只有JRE被下载)。
任何洞察力将不胜感激。谢谢。 -Michelle
能否证实:OpenJDK的是由Sun领导,现在正在由Oracle领导。为了证明OpenJDK源文件中的版权:http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/5534221c23fc。它包含各种'* .oracle。*'软件包以及'* .sun。*'软件包。为了验证它是否是OpenJDK,请查看'java -version'的输出。 – omajid