我在尝试使用 jlink 时得到了这个
Error: Module java.base not found
。
这是我迄今为止尝试过的两件事
/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/jlink --module-path "%JAVA_HOME%\jmods":mods --add-modules com.tutorialspoint.greetings,java.base --output customjre
Error: Module java.base not found
/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/jlink --module-path "%JAVA_HOME%\jmods":mods --add-modules com.tutorialspoint.greetings,[email protected] --output customjre
Error: Module [email protected] not found
我的模块包含这个。
module com.tutorialspoint.greetings {
requires java.base;
}
我完全按照本教程制作模块,除了添加了 require java.basic 之外。 https://www.tutorialspoint.com/java9/java9_module_system.htm
我在没有 require java.base 的情况下尝试了它,但仍然遇到同样的问题。 有什么想法吗?我是 JLink 和 Java9 的新手,想尝试一下,因为 java8 没有 Jlink。
也许这就是我在目录本身中引用 JLink 的方式?
问题来自于模块的路径定义不明确。
如果您使用的是 Macos,正确的语法是:
jlink --module-path "mods:$JAVA_HOME/jmods" --add-modules com.tutorialspoint.greetings --output customjre
确保在运行
JAVA_HOME
之前设置 jlink
变量。
此外,无需在模块中使用
java.base
模块定义 require 子句,因为 java.base
模块已隐式添加到所有模块中。
对我有用的解决方案是升级 AGP。
工具->AGP升级助手
使用最新版本