我试图从一个Cloud Foundry Java应用程序中调用javac,以便在应用程序运行时编译一个Java文件。我有一个关于正在使用哪个JDK的问题。
为了测试这一点,在我的应用程序中,我使用语句ToolProvider.getSystemJavaCompiler()实例化了一个JavaCompiler,并打印出编译器html" target="_blank">实例。应用程序部署在CF上并打印出来:com.sun.tools.javac.api.javactool@2e68d3ad
以下内容来自日志。
任何洞察力都将受到赞赏。多谢了。--米歇尔
假设一个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”对我来说几乎是不可能的