当我在目前的工作中参与 dockerization 项目时,我有一个疑问:我可以使用哪种 java?
这种怀疑是由于:

所以经过一些研究,我得到了这些结论:
根据我的结论:
如果我的开发严格需要或使用JDK 8开发,我是否可以仅将 Oracle Java SE 8 JDK 8u202 及更早版本用于免费和商业目的接受问题和安全问题?
如果我可以改变我的开发并且我仍然想要免费,并且我想要改进和安全更新,我必须使用这些 Java 开放实现之一吗?
亚马逊Corretto和OpenJDK(以及甲骨文的OpenJDK)之间有什么区别- 但是已经有了关于此的门票?Corretto是一个OpenJDK版本8实现.两者都是免费的,似乎可以在大多数系统上运行(Linux,Mac OS和Windows).到目前为止,Corretto仅在预览中,但这将很快改变.Corretto的文档没有说明差异.在性能,垃圾收集方面是否存在差异?为什么我更喜欢一个呢?你会在AWS之外使用Corretto吗?
自从将我的 jdk 升级到 Corretto jdk11.0.15_9 以来,jaxb2-maven-plugin 的 xjc 目标失败了。使用 Temurin jdk-11.0.14.1+1 运行时,该问题不会出现。我在 Windows 10 上使用 maven 3.8.5 运行它。
命令:
> set JAVA_HOME=C:\Corretto\jdk11.0.15_9
> mvn jaxb2:xjc
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------< com.example >------------------
[INFO] Building example 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- jaxb2-maven-plugin:2.5.0:xjc (default-cli) @ example ---
[INFO] Created EpisodePath [C:\Workspace\example\target\generated-sources\jaxb\META-INF\JAXB]: true
[INFO] Created EpisodePath [C:\Workspace\example\target\generated-sources\jaxb\META-INF\JAXB]: true
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.764 s
[INFO] Finished at: 2022-04-21T15:24:15+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed …Run Code Online (Sandbox Code Playgroud) 目前,我正在使用具有 JCE 支持的 Oracle JDK。我计划从 oracle JDK 迁移到 Amazon Corretto。
只是想知道 Amazon Corretto 是否支持 JCE(Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8)。
“在 Corretto 下运行 JavaFX 8 应用程序时,我遇到以下异常。
java.lang.UnsatisfiedLinkError:无法加载库:C:\Amazon Corretto\jdk1.8.0_192\jre\bin\glib-lite.dll
我的应用程序在 Oracle JDK 1.8 下运行良好。
我确认 Corretto 文件夹中的任何位置都不存在丢失的 dll。我发现 OpenJFX 中以及 Azul 的 ZuluFX 中存在的以下内容不在 Corretto 运行时中:
gstreamer-lite.dllglib-lite.dllfxplugins.dlljfxmedia.dlljfxwebkit.dllprism_es2.dllucrtbase.dll这个问题会在更新中得到解决吗?或者 Corretto 可能故意选择不完全支持某些 JavaFX 媒体功能?”
我使用 JLink 工具创建了一个缩小的 JRE
jlink --add-modules java.base,jdk.crypto.ec --output jre
Run Code Online (Sandbox Code Playgroud)
我创建了一个非常基本的应用程序,它连接到 https://www.example.com
当我使用 JDK 运行此应用程序时,一切正常。当我使用缩小的 JRE 运行它时,我得到以下信息:
Exception in thread "main" javax.net.ssl.SSLException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:133)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:320)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:263)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:258)
at java.base/sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1313)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:408)
at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1515)
at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
at URLTest.printResponseCode(URLTest.java:68)
at URLTest.main(URLTest.java:47)
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.base/sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:102)
at java.base/sun.security.validator.Validator.getInstance(Validator.java:181)
at java.base/sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:300)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:176)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:189) …Run Code Online (Sandbox Code Playgroud) 我们如何在Ubuntu OS中安装Amazon Corretto.
无法通过使用 Amazon Corretto 8 双击可执行 jar 文件来运行该文件
我已经从我的机器(Windows 10)上卸载了 Oracle java 8 并安装了 amazon corretto 8。从那时起,我无法通过双击可执行 jar 文件来运行它。我可以使用 CMD (java -jar Myjar.jar) 运行可执行 jar 文件。我已尝试以下方法来解决该问题。
1)关联打开jar文件的默认程序。
2)编辑jar_auto_file注册表。
3) 从 CMD 创建 jar 文件 (jar -cvfm AwtExample.jar manifest.txt com/abc/awt/*.class )
4) 从 Eclipse 创建可执行 jar。
我不确定这是否是亚马逊 corretto 8 的限制或 Windows 10 的问题。
我正在寻找一种解决方案,只需双击可执行 jar 即可运行它,而无需更改 Windows 注册表。
是否计划在 Corretto 发行版中支持 javaFX?OpenJDK-8 发行版不支持 JavaFX,我想知道 Corretto 是否支持它。
我正在尝试从 Amazon Corretto 下载 JDK https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html。有 2 个适用于 macOS 的下载链接(macOSx64 或 macOSaarch64),但我不确定应该下载哪一个。我使用的是 macOS Monterey 版本 12.0.1