当前位置: 首页 > 知识库问答 >
问题:

云铸造中的JDK可用性

郭麒
2023-03-14

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

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

以下内容来自日志。

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

任何洞察力都将受到赞赏。多谢了。--米歇尔

共有1个答案

顾兴昌
2023-03-14

假设一个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下载Open Jdk JRE 1.8.0_121(0.5s)

注意它是如何说“打开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
 类似资料:
  • 我知道这是一个关于云铸造的普遍问题,目前的回答令人失望,尽管我认为这不可能用于微型云铸造的实例,但我想问一问,只是为了确保。是否可以在Micro Cloud Foundry实例上配置外部域,而无需从cloudfoundry子域进行隧道操作?

  • 我对云铸造/波什非常陌生,有一套基本的问题。 1)液滴vs花园容器:我知道液滴包含源代码+构建包,这些液滴在花园容器中执行。IMHO容器很好地运送到其他系统。为什么有液滴的中间概念?他们自己的容器应该不会产生液滴吗? 2)Diego cell:Diego cell的角色是什么(我假设它的工作只是启动/停止花园容器)?Diego cell是否依赖于平台(例如。特定单元只能运行windows-gard

  • 我有一节简单的课 这将输出为10,没有任何错误!!!我原以为这会给我一个ClassCastException,其中有些错误,比如Integer不能转换为HashMap。 出于好奇和愤怒,我尝试了返回值,如下所示

  • 我有一个PWS帐户,在安装云铸造命令行界面(CLI)后,我尝试从windows命令提示符、CYGWIN终端和Gitbash登录。在上述所有情况下,我都不能通过登录 但是如果我发出命令:就可以登录,但是这个命令的问题是我在命令行上公开了我的密码。 我在windows命令提示符中尝试了同样的命令,它起作用了,我可以登录了。

  • 我在这里遵循微云铸造快速入门指南:http://support.cloudfoundry.com/entries/20316811-micro-cloud-foundry-getting-startning-guide 我正在第10步:注册一个新用户,但我无法连接: 我的虚拟机处于NAT模式。我的虚拟机中的当前配置如下所示: 当前配置: 标识:lsmith.cloudfoundry.me(ok)

  • 当我从Cloud Foundry博客中读到以下内容时,我正试图弄清楚如何使用微CloudFoundry进行开发: “您不需要安装web服务器(Tomcat等)、运行时(Java、Ruby等)和服务(Postgres、MongoDB等),只需下载Micro Cloud Foundry,启动它,然后使用”VMC Push“部署应用程序。” 在开发过程中不断调用“VMC push”对我来说几乎是不可能的