谷歌应用引擎支持Java 8吗?

27

尝试使用Google App Engine - 它能与Java 8一起使用吗?

我按照这个页面上的说明操作: https://console.developers.google.com/start/appengine

选择“Java”,我成功完成了Maven构建,但当我访问localhost:8080时没有任何运行。

说明中说“确保已安装Java 7 JDK”,但我刚刚安装了Java 8 JDK。

我需要单独安装Apache吗?


它现在支持Java8(BETA版)https://cloud.google.com/appengine/docs/standard/java/runtime-java8 - yegle
请看下面我的回答,截至今天的情况如下。你可能想要更改已接受的答案! - crb
1
被接受的答案应该得到更新。现在所有版本的App Engine都可以使用Java 8了。 - BrettJ
1
Google App Engine现在支持Java 8,已经正式发布。https://cloud.google.com/appengine/docs/standard/java/runtime-java8 - Dagang
13个回答

14

Java 8现在已经在App Engine标准环境中全面推出,加入了App Engine灵活环境上的GA运行时。

了解差异之处

新的Java 8运行时具有Java 7的所有优点,但也进行了升级和增强:

  • 基于OpenJDK 8的Java运行时支持标准公共Java库(无白名单)
  • 不会强制实施安全管理器——您的代码不会因为Java权限问题而受到限制。

11

10
更新:自2017年中期以来,它已经在“标准”(沙盒)提供中可用,https://cloud.google.com/blog/products/gcp/java-8-on-app-engine-standard-environment-is-now-generally-available 在那之前,通过托管VMs,它是有点可用的。其想法是,您提供带有所需软件(如Java 8)的Docker容器,并且GAE将使用该容器作为应用程序实例VM。您仍然可以获得自动缩放、监控等所有功能。
托管VMS的缺点是,您需要像计算引擎VM一样付费。这意味着您按分钟付费,没有免费配额。对于新用户账户有60天的300美元信用额度,但之后您需要支付费用。

如何将Docker容器映射到GAE托管的虚拟机? - Bharathi
嘿,user7610。刚刚注意到你的回答中有一个小错误:试用期实际上是60天,而不是3个月。 - Patrice
更新了,谢谢。要么我一开始就犯了错误,要么术语发生了变化。 - user7610

10

[随着时间的推移,这个被接受的答案中的“不”已经变成了“是”。请参见下面的其他答案。]

简短回答,不行。虽然它们会逐渐整合它,但现在如果你使用它,会导致很多错误。我建议不要使用它。

还要注意下面用户7610的答案:)它是目前在云平台上拥有Java 8的唯一方法


2
这是一篇谷歌员工最近发布的帖子,证实Java 8即将到来GAE:https://groups.google.com/d/msg/google-appengine/8y80sEhr7Rc/66WnFoBvL3AJ - Jens Bannmann
@JensBannmann 看起来仍然不支持,因为我仍然收到“不支持的..版本..”异常。 - Stefan Falk
@displayname 看看 Flex 吧。我真的认为这将是运行 Java8 的最佳方式。你可以使用它们来控制任何运行时 :). - Patrice
你的问题很受欢迎,每个与Google App Engine和Java 8相关的问题都可能因为被接受的答案而感到困惑。@Ian提供了解决问题的答案。 - dhyanandra singh
1
自2017年第三季度起,Google App Engine已经正式支持Java 8。详情请参见https://cloud.google.com/appengine/docs/standard/java/runtime-java8。 - Dagang

4
如果你对在Google App Engine上使用lambda表达式感兴趣,你可以尝试Retrolambda。我还没有尝试过,但它声称将Java 8的lambda表达式回溯到Java 7。

4

2

虽然不完全相同,但您可以在新的App Engine“灵活环境”中使用Java 8。我认为您无法访问App Engine API(例如图像服务或任务队列),但您将能够使用位于App Engine之外的服务,例如Datastore和Pub/Sub。

值得注意的是,该服务目前处于测试版(因此不受任何SLA保护)。此外,定价不同;不使用正常的App Engine定价结构,而是基于GCE虚拟机的使用量。


2

2

1

在您的appengine-web.xml文件中添加<runtime>java8</runtime>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接