我試圖從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