1

我正在探索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 之一

如果有人为此错误提供最佳解决方案,我们将不胜感激。

4

1 回答 1

7

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

$ /opt/jigsaw-jdk-9/bin/jar \
    --create \
    --file lib/dictionaryspi.jar \
    --module-version=1.0 \
    -C mods/dictionary.spi/ .

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

于 2016-03-22T16:40:47.500 回答