我想将旧的Java代码迁移到java9模块。例如。在类路径中,有一个名为org.eclipse.jface.3.7.0.v20110928.jar的jar文件。在类路径中,它被称为org.eclipse.jface_3.7.0.v20110928.jar。 jface之后文件名中的点在类路径中替换为下划线。不知道它是如何工作的。也许是因为.3.7.0。不是合法的Java标识符。
但是现在我想将其用作模块。我收到模块名称错误。部分“ .7.0”。不允许,因为数字不能是Java标识符。下划线是java9中的保留字。
首先,我为模块使用与在类路径中看到的模块相同的名称(org.eclipse.jface_3.7.0.v20110928.jar)。但这是一个错误。我试图使用文件名(org.eclipse.jface.3.7.0.v20110928.jar),同样的错误。
module iDEpdf.src
{
exports org.idepdf.ri.common.utility.annotation;
...
requires org.eclipse.jface.3.7.0.v20110928;
}
标记为“ .3.7.0”,错误为“非法令牌”。当我使用org.eclipse.jface_3.7.0.v20110928时,标记的子字符串为“ .7.0”。错误是一样的。
如果可能,我不想重命名jar文件。我不明白它对类路径的作用,也不明白为什么它对模块不起作用。我该如何处理?
答案 0 :(得分:0)
我认为您正在使用非常老的JFace库。您可能需要更新或添加Automatic-Module-Name
。
由于该库还没有模块描述符,因此该模块未被识别为有效。
我的问题也是:为什么在将库更新到最新版本之前迁移到模块系统?
另请参阅this question或this one。