diff --git a/libs/README.md b/libs/README.md new file mode 100644 index 0000000..833df2a --- /dev/null +++ b/libs/README.md @@ -0,0 +1,43 @@ +# 解决jlink error指南 + +## 现象 + +jlink时,如果出现如下错误,参考本文档 + +``` +"automatic module cannot be used with jlink" +``` + +## 解决方法: + +1. 为jar生成module-info.class + +```shell +jdeps --ignore-missing-deps --module-path --add-modules +javac --patch-module = +jar uf -C +``` + +以本次icu4j为例,先将依赖的jar包copy到libs目录,然后执行: + +```shell +jdeps --ignore-missing-deps --module-path libs --add-modules com.ibm.icu --generate-module-info libs/tmpOut libs/icu4j-73.2.jar +javac --patch-module com.ibm.icu=libs/icu4j-73.2.jar libs/tmpOut/com.ibm.icu/module-info.java +jar uf libs/icu4j-73.2.jar -C libs/tmpOut/com.ibm.icu module-info.class +``` + +2. pom中添加依赖 + +```xml + + + com.ibm.icu + icu4j + 73.2 + system + ${project.basedir}/libs/icu4j-73.2.jar + +``` + +## Reference +1. [java_jlink_automatic_module_cannot_be_used_with_jlink](https://tacosteemers.com/articles/java_jlink_automatic_module_cannot_be_used_with_jlink.html) \ No newline at end of file diff --git a/libs/icu4j-73.2.jar b/libs/icu4j-73.2.jar new file mode 100644 index 0000000..2faa792 Binary files /dev/null and b/libs/icu4j-73.2.jar differ diff --git a/pom.xml b/pom.xml index cc4e2e0..0fed9d1 100644 --- a/pom.xml +++ b/pom.xml @@ -58,7 +58,9 @@ com.ibm.icu icu4j - 68.1 + 73.2 + system + ${project.basedir}/libs/icu4j-73.2.jar diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/LineFeed.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/LineFeed.java deleted file mode 100644 index ea8c4f5..0000000 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/LineFeed.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.jcnc.jnotepad.controller.event.handler; - -import javafx.event.ActionEvent; -import javafx.event.EventHandler; -import org.jcnc.jnotepad.app.config.GlobalConfig; - -/** - * 换行事件处理,针对当前选中tab进行格式化。
- * 配置变更时:
- * 1. 更新内存全局配置
- * 2. 对当前tab生效配置。每次tab切换,根据全局配置设置进行变更
- *

- * 用于在文本区域中插入一个换行符。 - * @see GlobalConfig - * - * @deprecated 事件处理将使用item的listener实现 - * - * @author 许轲 - */ -@Deprecated -public class LineFeed implements EventHandler { - /** - * 处理事件的方法,将一个换行符插入到文本区域的末尾。 - * - * @param event 触发的事件对象 - */ - @Override - public void handle(ActionEvent event) { - // - - } -} diff --git a/src/main/java/org/jcnc/jnotepad/ui/menu/JNotepadMenuBar.java b/src/main/java/org/jcnc/jnotepad/ui/menu/JNotepadMenuBar.java index a0ea7c6..d9eb38c 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/menu/JNotepadMenuBar.java +++ b/src/main/java/org/jcnc/jnotepad/ui/menu/JNotepadMenuBar.java @@ -148,7 +148,6 @@ public class JNotepadMenuBar extends MenuBar { openItem.setOnAction(new OpenFile()); saveItem.setOnAction(new SaveFile()); saveAsItem.setOnAction(new SaveAsFile()); - lineFeedItem.setOnAction(new LineFeed()); lineFeedItem.selectedProperty().addListener((observableValue, before, after) -> { // 1. 更新全局配置 GlobalConfig.getConfig().setAutoLineConfig(after);