我正在探索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
我尝试为上面的类文件创建jar文件,如下所述。
$ /opt/jigsaw-jdk-9/bin/jar --create --file lib/dictionaryspi.jar --module-version=1.0 mods/dictionary.spi/ .
没有module-info.class的--module-version或--hash-dependencies之一
非常感谢任何人为此错误提供最佳解决方案。
答案 0 :(得分:6)
您的命令缺少"更改目录"参数:
$ /opt/jigsaw-jdk-9/bin/jar \
--create \
--file lib/dictionaryspi.jar \
--module-version=1.0 \
-C mods/dictionary.spi/ .
请注意包含类的目录前的-C
。