我想将我的旧 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'被标记,错误是'illegal token'。当我使用 org.eclipse.jface_3.7.0.v20110928 时,标记的子字符串是“.7.0”。错误是一样的。
如果可能的话,我不想重命名 jar 文件。我不明白它对类路径是如何工作的,也不明白为什么它对模块不起作用。我该如何处理?
最佳答案
我认为您使用的是一个非常古老的 JFace 库。您可能需要更新或添加 Automatic-Module-Name
。
由于该库还没有模块描述符,因此该模块未被识别为有效。
我的问题也是:为什么在将库更新到最新版本之前先迁移到模块系统?
另请参阅 this question或 this one .
关于java - Java 包和模块的允许名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57613853/