我使用jmod工具创建了一个简单的JMOD文件,如下所示

$JAVA_HOME/bin/jmod create --class-path classes test/samples.jmod

接下来,我尝试通过运行以下命令在该模块中执行一个类:
java -mp test -m de.mypackage/de.mypackage.Test

这导致以下异常:
Error occurred during initialization of VM
java.lang.module.ResolutionException: JMOD files not supported: test/samples.jmod
  at java.lang.module.Resolver.findWithBeforeFinder(java.base@9-ea/Resolver.java:729)
  at java.lang.module.Resolver.resolveRequires(java.base@9-ea/Resolver.java:86)
  at java.lang.module.Configuration.resolveRequiresAndUses(java.base@9-ea/Configuration.java:370)
  at java.lang.module.ModuleDescriptor$1.resolveRequiresAndUses(java.base@9-ea/ModuleDescriptor.java:1986)
  at jdk.internal.module.ModuleBootstrap.boot(java.base@9-ea/ModuleBootstrap.java:263)
  at java.lang.System.initPhase2(java.base@9-ea/System.java:1928)

如果我只是将classes目录(我用来创建JMOD文件的目录)设置为modulepath,那么一切都会按预期进行。

通常在模块路径上没有JMOD文件是不可能的吗?如果是这种情况,那有什么理由吗?

最佳答案

参见http://openjdk.java.net/jeps/261#Packaging:-JMOD-files

关于java - 使用Java 9将自定义JMOD添加到模块路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38267059/

10-11 02:46