我想使用Amazon Lambda运行组件。但是,此组件与某些程序包具有依赖性,这些程序包似乎仅在Oracle的SDK中可用。
我已阅读到AWS Lambda函数在Linux Amazon AMI(基于Open SDK)上运行。实际上,前一段时间,我试图在EC2实例上运行我的项目,并且遇到了同样的问题,所以我切换到标准的Ubuntu 14.04,并安装了Oracle Java 8 SDK。
你有什么想法?
编辑:我发现的问题是:
[2016-11-21T23:58:02.100] java.lang.NoClassDefFoundError: com/sun/webkit/network/CookieManager
[2016-11-21T23:58:02.100] java.lang.NoClassDefFoundError: com/sun/webkit/network/CookieManager
[2016-11-21T23:58:02.100] at com.machinepublishers.jbrowserdriver.JBrowserDriverServer.main(JBrowserDriverServer.java:74)
我认为该类仅在Oracle的Java SDK中可用。
如果您检查Lambda执行环境和可用库,那么您将获得
如果您在代码中使用任何本机二进制文件,请确保在此环境中对它们进行了编译。请注意,AWS Lambda仅支持64位二进制文件。
AWS Lambda支持以下运行时版本:
- Node.js – v0.10.36,v4.3.2(推荐)
- Java-Java 8
- Python – Python 2.7
问:Lambda用于执行我的功能的JVM环境是什么?
答案:Lambda提供了openjdk 1.8的Amazon Linux构建。
问:如何编译AWS Lambda函数Java代码?
您可以使用Maven或Gradle之类的标准工具来编译Lambda函数。您的构建过程应模仿用于编译依赖于AWS开发工具包的任何Java代码的相同构建过程。[R在源文件取消您的Java编译器工具,包括AWS SDK 1.9或更高版本在classpath传递依赖。有关更多详细信息,请参见aws文档。
您还可以检查:AWS Lambda:如何工作
如果您在github上检查jbrowserdriver,则前提条件已给出
带有JavaFX的Java 8:
Ubuntu Xenial 16.04 LTS,Debian 8 Jessie(Backports),Debian 9 Stretch:
sudo apt-get install openjdk-8-jre openjfx
Ubuntu Trusty 14.04 LTS:
sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java8-installer libgtk2.0 libxtst6 libxslt1.1 fonts-freefont-ttf libasound2 && sudo update-alternatives --config java
Mac,Windows,Linux:
安装Oracle Java 8(注意:选择JRE或JDK,但不要选择“ Server JRE”,因为它不包含JavaFX)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句