其中一个--module-version或--hash-dependencies没有module-info.class错误在jdk 9中打包为jar时

Sri*_*m M 1 java jar java-platform-module-system java-9

我正在探索Project Jigsaw @ JDK 9,几乎所有Java开发人员都在考虑Oracle如何为Java 9带来模块化.

我已经创建了一个示例java项目,代码编译没有任何错误.

下面是生成的字节码文件及其结构

$ tree mods/dictionary.spi/
mods/dictionary.spi/
??? dictionary
?   ??? DictionaryService.class
?   ??? spi 
?       ??? Dictionary.class
??? module-info.class
2 directories, 3 files
Run Code Online (Sandbox Code Playgroud)

我尝试为上面的类文件创建jar文件,如下所述.

$ /opt/jigsaw-jdk-9/bin/jar --create --file lib/dictionaryspi.jar --module-version=1.0 mods/dictionary.spi/ .
Run Code Online (Sandbox Code Playgroud)

没有module-info.class的--module-version或--hash-dependencies之一

非常感谢,如果有人为这个错误提供了最佳解决方案.

Nic*_*lai 6

您的命令缺少"更改目录"参数:

$ /opt/jigsaw-jdk-9/bin/jar \
    --create \
    --file lib/dictionaryspi.jar \
    --module-version=1.0 \
    -C mods/dictionary.spi/ .
Run Code Online (Sandbox Code Playgroud)

请注意-C包含您的类的目录之前.

  • 没问题.如果你能接受并赞成答案,那就太好了. (2认同)