java包和模块允许的名称

java包和模块允许的名称,java,migration,java-platform-module-system,Java,Migration,Java Platform Module System,我想将我的旧java代码迁移到java9模块。例如,在类路径中有一个名为org.eclipse.jface.3.7.0.v20110928.jar的jar文件。在类路径中,它被引用为org.eclipse.jface_3.7.0.v20110928.jar。jface之后的文件名中的点在类路径中替换为下划线。我不知道它是怎么工作的。也许是因为。3.7.0。不是合法的java标识符 但现在我想把它用作一个模块。我得到一个modulename错误。不允许使用“.7.0”部分,因为数字不能是java标

我想将我的旧java代码迁移到java9模块。例如,在类路径中有一个名为org.eclipse.jface.3.7.0.v20110928.jar的jar文件。在类路径中,它被引用为org.eclipse.jface_3.7.0.v20110928.jar。jface之后的文件名中的点在类路径中替换为下划线。我不知道它是怎么工作的。也许是因为。3.7.0。不是合法的java标识符

但现在我想把它用作一个模块。我得到一个modulename错误。不允许使用“.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文件。我不明白它是如何用于类路径的,也不明白它为什么不适用于模块。我应该如何处理这个问题?

我认为您使用的是一个非常旧的JFace库。您可能需要更新或添加
自动模块名称

由于库还没有模块描述符,因此无法识别该模块是否有效

我的问题也是:为什么在将库更新到最新版本之前迁移到模块系统


另请参见或。

如果只是将
\u 3
更改为
-3
,您可能需要对其进行重命名。在确定自动模块名称时,连字符被视为版本的开始。看,这个软件很旧,可以在许多计算机上运行。现在我需要扩展软件的算法部分。我想使用lambdas、streams等。因此,我使用newst eclipse IDE和Java12。EclipseIDE没有任何库,所以我决定暂时使用旧库。Java12没有JRE,所以我想使用模块系统用jlink构建运行时。你是对的。首先,我将把库更改为新的版本。那我们看看。ModuleFinder文档很有趣。这有助于我理解发生了什么。Java 9+迁移不需要您离开面向类路径的世界!常规的迁移建议是首先使用classpath在java9上运行,然后开始考虑模块化。是的,使用classpath软件运行时不会出现问题omnjava9或java12。我想使用java12。但是Java12中没有JRE。但是我可以用jlink创建一个运行时。也许这在类路径项目中是可能的,但是将其模块化会更好。现在我尝试用当前版本更改所有旧库。EclipseIDE2019/6没有插件,所以我尝试在maven存储库中查找这些库。有些是我发现的,有些是我没有发现的(例如org.eclipse.swt.win32.win32.x86_64)。有没有一个地方可以找到所有供maven使用的eclipse插件?现在我使用最新版本的eclipse插件。我下载了eclipse平台以获得一致的库。插件仍然不是模块化的。相同的包在更多的插件中。e、 g.eclipse.core.runtime位于plugins org.ecluipse.core.rz中