问题标签 [openjdk-11]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JavaFX11 中是否有用于替换 ClassBuilder 的新类
我正在将我的应用程序Java 1.7
从Java 11
. 我的应用程序使用JavaFX
. 在迁移过程中,我看到 TooltipBuilder、GridPaneBuilder、CircleBuilder 或 TextBuilder 等类不再存在。我们能找到它JDK11
吗?更换它最好的方法是什么?
eclipse - 在 Eclipse 中使用 Maven 集成为 OpenJFX 11 项目创建 Windows 可执行文件
我正在从 Java 8(Oracle JDK)切换到 OpenJDK 11 和 OpenJFX 11。我已经成功地让我的项目通过 Maven 通过clean javafx:run
命令在 Eclipse 中工作,maven-compiler-plugin
但是我在构建可运行的 jar 和 windows 可执行文件时遇到了问题。我不需要可运行的 linux 或 mac,因为这个项目只是一个内部产品,我们只使用 windows。
我已经尝试了几个插件,例如maven-shade-plugin
,也尝试运行mvm package
无济于事。我已经尝试过这个Build executable JAR with JavaFX11 from maven和这个How to deploy a JavaFX 11 Desktop application with a JRE。
过去我可以通过 Eclipse 的“Export Runnable Jar”选项构建一个可执行 jar,然后通过 launch4j 创建一个可执行文件,但这似乎不再起作用,我理解这可能是由于 OpenJDk 9+ 的模块化结构。
我添加了所有 JavaFX 依赖项以及我需要的 JAXB 依赖项,并且在构建它时它在 IDE 中运行(尽管一旦我让它在 Maven Run 中运行,我就无法让它作为 Java 应用程序运行配置运行配置。
这是我的插件:
这是我尝试运行时的错误消息mvn clean package
java - jlink 出品的定制JRE 体积大,jre 最小
我正在尝试为纤薄的 Docker 映像提供最小的 JRE。使用 Ubuntu 上的 open-jdk-11 附带的 jlink 11.0.4,使用此自定义 JRE 构建的映像实际上大于使用默认 JRE 构建的映像。我认为这是由于 cutom_jre/lib/server/libjvm.so 的大小非常大
我正在关注来自 Arun Gupta 的 Kubernetes for Java Developers on Linkedin Learning。在某些时候,我注意到我的 Ubuntu 实例上有一个奇怪的行为。除了这门课程,我还需要为一个最小的 Spring Boot 应用程序提供一个自定义 JRE,以便将它用于一个纤薄的 Docker 映像。
这种方法在课程中运行良好,并且大小my_jre
适合为应用程序构建最小的 Docker 映像。问题是在我的设置中我使用了 openjdk-11,而不是 openjdk-9。
使用我的设置,生成的大小my_jre
会非常大(~380mb)。经过一番调查,我发现这主要而且可能只是由于my_jre/lib/server/libjvm.so
.
jlink
在此尝试之前,我没有任何经验。经过一些试验和错误,并浏览了 github 上的类似问题,我找到了 jlink 功能之外的解决方法。
使用该标志运行该strip
实用程序--strip-unneeded
将缩小 libjvm.so 的大小,并有可能实现主要目标:为苗条的 Docker 映像提供最小的 JRE(~113mb)。
我希望有知识的人能更深入地解释这种天赋的背景。就这种行为而言,从 jdk9 到 jdk11 还有什么变化?除了 jdk9+ 提供的工具(例如 jlink)之外,是否有任何标准流程可以在没有任何外部工具的情况下实现这一目标?
java - 如何在 JavaFX11 中替换 SkinBase 的继承
我正在迁移一个包含JavaFX 2
to的应用程序OpenJDK11
。由于SkinBase
with的继承消失,我有一个错误StackPane
。我不能再使用像事件方法(定义在Node
),getChildren()
(定义在Parent
)和许多其他需要继承的方法......
这是我在 JDK11 中想要的 Java 1.7 中的上一个类:
这些方法继承自 Class Node 或 Parent 这很有效,因为 SkinBase 的签名是(在 JavaFX8 之前):
StackPane 是 Pane 的子节点,它是 Region 的子节点,Region 是 Parent 的子节点,也是 Node 的子节点。
现在,在 JDK11 中,SkinBase 的签名是
Inheritence 不再存在,这些函数也不再定义(super() 也没有)。解决这个问题的最佳方法是什么?谢谢您的回答 !
java-11 - 将 sun.reflect 包与 openjdk11 一起使用
有没有办法在 OpenJDK11 中使用 sun.reflect,可能在“--add-exports”中添加一些东西?我们的代码失败了,因为 jide pkg 内部使用了 sun.reflect 包,我正在尝试看看是否有办法让它工作。
我已经尝试过以下方法,但这无济于事。
“--add-exports jdk.unsupported/sun.reflect=ALL-UNNAMED”
这是一个例外,基础类引用sun.reflect.Reflection
java - 内存非常大的机器上的 OpenJDK MaxRAMPercentage
在具有 60GB 内存(甚至更多)的机器上运行 OpenJDK 11 时,
MaxRAMPercentage
仅允许我最多分配大约 30GB。
这可以正常工作:
但是当百分比应该产生超过 30G 的堆大小时,我得到:
使用好的旧-Xmx
作品(例如-Xmx50G
)。
我错过了什么?MaxRAMPercentage
应该是有界的?
java - 运行 JAR 文件需要 JAXB
我安装了 OpenJDK 11。我需要从 Internet 运行 jar 应用程序,它会抛出关于 JAXB 的异常。如何将 JAXB 添加到 OpenJDK 11 以使该应用程序可以工作?
这里的问题只是告诉我添加到 maven 但这个应用程序我刚刚得到了 jar 文件。
java - OpenJDK 11 错误“无法初始化加密机制”
我有一个用 openJDK (Amazon Correto 11) 和 openJFX 编写的应用程序。
当我在本地运行应用程序时 - 一切正常。但是当我从网络共享执行应用程序时出现异常:
我使用命令运行应用程序:
\\\some-network-share\app\jre\bin\javaw.exe -jar myapp.jar
因为在这个网络共享上,我复制了 Amazon Correto 11 JDK 文件和我用于应用程序的其他库。
我在另一个线程中运行 get request 并且该线程引发异常。
我怎样才能克服这个问题?
请帮忙。
我尝试了不同的库: 1. OkHttpClient 2. Java Unirest
但在两个相同的错误。
编辑 1我添加了额外的堆栈跟踪 - 请检查
java - OpenJDK 11.0.4 在类路径中有 java-atk-wrapper.jar
我在尝试通过 .jar 从应用程序的 .jar 文件加载 MANIFEST.MF 时注意到了这个问题class.getResource("/META-INF/MANIFEST.MF")
。
而不是得到我自己的清单,清单似乎是从/usr/share/java/java-atk-wrapper.jar
. 但是,此 jar 未指定为我的应用程序类路径的一部分 - 我尝试禁用 java 可访问性辅助技术(此处),但这没有效果。
有趣的是,这种行为特定于 OpenJDK-11.0.4。使用 11.0.3 时不会出现此问题。任何人都可以阐明这里可能发生的事情吗?java-internal jars/classes 的加载/访问方式是否有某种变化?或者这可能只是 11.0.4 中引入的一个错误?
最小的工作示例:
然后运行:
此代码片段的预期行为是抛出 NPE,因为没有清单资源。相反,清单是从 atk-wrapper 加载的。
环境细节:
Ubuntu 16.04.5 LTS
OpenJDK 是通过 apt 全新安装的
apk-wrapper没有明确安装。在我们的一台机器上发生此问题之前,我不知道它的存在——此时我也能够在我的本地机器上重现它。