将Java应用程序从Java 8迁移到Java 11

6

提前感谢那些将要帮助我的人。

故事:迄今为止,我的应用程序一直使用JDK8,但现在我正在将其迁移到Open JDK11并使用IVY作为依赖管理器和Ant作为构建工具。

问题:在eclipse中,我遇到了javax的编译时问题,但是我从classpathModulepath更改了构建路径中的JRE库。现在一切都正常了。但现在主要问题是,在使用Ant运行antbuild.xml时,它仍然会出现相同的编译时错误。我想我现在知道该怎么做,但我不知道如何做。我必须在antbuild.xml的某个地方将Open JDK11添加为模块路径。

主要问题:如何在antbuild.xml(基本上是ANT构建文件)中设置Open JDK11作为模块路径。

如果问题还不清楚,请告诉我。

1个回答

2

经过11个月的努力,我终于能够回答这个问题,因为我现在了解了实际问题,并且我已经有了一个解决方案,我在我的项目中实施了它,它运行得非常完美,所有的编译时错误都被修复了。

我实施的解决方案是:

  • 在eclipse中打开项目,我的版本是最新的2019-06版本
  • 右键单击项目 > 属性 > Java构建路径
  • classpath中删除Java 8及以上版本,你会找到Modulepath
  • 点击Modulepath,然后从右侧按钮面板选择Add Library
  • 现在会弹出一个对话框,选择JRE系统库并按下一步按钮
  • 现在你可以选择已安装的JREs..按钮来添加新版本的java
  • 从已安装的JREs对话框中按添加按钮
  • 选择标准VM > 按下一步按钮。
  • 现在从你的文件系统中选择JRE主目录,确保你选择的路径是bin而不是bin下的子目录
  • 完成并应用所有更改
  • 现在让eclipse构建项目,当然,你会有错误。

这个问题的原因

Java更改了其文件结构,所以很多包都移动到了其他位置。一些新的包被使用,一些被替换和重命名。

所以基本的问题就是这样。


解决编译时错误的方法

  • 打开出现错误的文件,看哪个导入语句创建了错误,复制没有错误的文件名
  • Ctrl + shift + t,粘贴文件名并查看我们现在有哪些可能的选项,实际上现在有多个库提供相同的类实现。所以现在我们必须选择一个,并从依赖管理器中删除另一个依赖项。
  • 现在我们需要添加一些更多的依赖项来支持我们的代码。
  • 清除多余的依赖项。
  • 现在我们只需要解决编译时错误。这就是我们可以做的解决方案。

这个解决方案帮助了我。 如果你也面临同样的问题,请联系我,我可能会帮助你解决这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接