gpt4 book ai didi

java - 有没有办法可以在执行时覆盖 JRE 中的文件?也就是说,不编辑JRE?

转载 作者:行者123 更新时间:2023-12-02 02:20:30 26 4
gpt4 key购买 nike

我想向 JavaFX 的虚拟键盘添加数字键盘。

我尝试了其他几种解决方案(包括使用 GitHub 上的键盘或尝试 JavaFX 的数字虚拟键盘),但这将是最简单、最实用的。

我找到了由 com.sun.scene.control.skin.FXVKSkin.class 读取的文本文件 (com.sun.scene.control.skin.TextBoard.txt) 以创建普通键盘。我添加了小键盘,效果很好。但是,我想在不实际编辑 JRE 的情况下执行此操作。

这是 FXVKSkin.java 加载键盘的相关部分。

private List<List<Key>> loadBoard(String type) {
List<List<Key>> tmpBoard = boardMap.get(type);
if (tmpBoard != null) {
return tmpBoard;
}
String boardFileName = type.substring(0,1).toUpperCase() + type.substring(1).toLowerCase() + "Board.txt";
try {
tmpBoard = new ArrayList<List<Key>>(5);
List<Key> keys = new ArrayList<Key>(20);
InputStream boardFile = FXVKSkin.class.getResourceAsStream(boardFileName);
BufferedReader reader = new BufferedReader(new InputStreamReader(boardFile));

或者,当 FXVKSkin.java 说“FXVKSkin.class.getResourceAsStream("TextBoard.txt") 时,我是否可以将 TextBoard.txt 保留在项目的类路径中,并以某种方式指向该副本而不是 JRE 中的副本?

最佳答案

我找到了解决方案!

我获取了 jre/lib/ext/jfxrt.jar(com.sun.scene.control.skin.TextBoard.txt 所在的 jar 文件),并将其复制到我的项目的工作目录中。我删除了副本中除路径 com/sun/javafx/scene/control/skin/TextBoard.txt 之外的所有内容,并添加了“-Xbootclasspath/a:jfxrt.jar”作为启动选项。我仍在使用 Java 8,因此这可能不适用于更高版本,但它对我有用。

关于java - 有没有办法可以在执行时覆盖 JRE 中的文件?也就是说,不编辑JRE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57279678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com