英文:
Upgrading from openJDK 8 to openJDK 11
问题
我在我的Ubuntu 18.04系统中安装了JDK 8,现在我想使用此链接将其升级到JDK 11。我只想知道这样做是否会导致任何问题。在升级时,旧版本会被移除吗(实际上我希望旧版本能自行移除)?
英文:
I have JDK 8 installed in my ubuntu 18.04 system and I now want to upgrade it to JDK 11 using this. I just want to know if this would create any problem or not. Would the older version be removed on upgrading( Actually I want older version to be removed by itself)?
答案1
得分: 6
以下是翻译好的内容:
执行以下步骤,在Ubuntu上卸载先前的openJDK版本:
sudo apt-get remove openjdk
要删除所有配置文件和依赖项,请运行:
sudo apt-get purge --auto-remove openjdk*
然后安装openJDK 11:
sudo apt-get install openjdk-11-jdk
英文:
Do this to uninstall previous versions of openJDK on Ubuntu
sudo apt-get remove openjdk
To remove all of the config files and dependencies.
sudo apt-get purge --auto-remove openjdk*
Then install openJDK 11
sudo apt-get install openjdk-11-jdk
答案2
得分: 1
升级通常允许适用于Java 8编译的代码运行;但是,有一些注意事项。
包含了Project Jigsaw项目意味着达到方法的访问规则略有变化。在Java 8和Java 11之间几乎是兼容的。差异将在以下情况下显现:
- 尝试使用com.sun.*包(或任何其他非公共API入口点)。
- 尝试对非公共API入口点使用反射。
- 修改启动以使用模块,这将停用Java 8的“默认”模块处理。
简而言之,这几乎是一个简单的升级。问题出现在代码正在执行不应该执行的操作时,或者当您的代码未经过模块化设计,而您的某些运行时代码是为模块设计的。
如果您可以访问源代码,可以通过添加模块规范来修复许多问题;但是,这可能需要您理解模块化(这相当简单,但仍然是一个障碍)。
英文:
An upgrade will generally allow code compiled for Java 8 to run; but, there are some caveats.
The inclusion of Project JigSaw means that the access rules for "reaching" a method have changed slightly. They are almost compatible between Java 8 and Java 11. The differences will show when:
- You try to use one of the com.sun.* packages (or any other non-public api entry point).
- You try to use reflection on a non-public API entry point.
- You alter the launch to use a module, which will deactivate the Java 8 "default" module handling.
In short, it's almost an easy upgrade. The problems come into play when code is doing something it shouldn't have done, or when you have code not designed for modules, and some of your runtime code is designed for modules.
If you have access to source code, you can fix a lot of this by adding in the module specifications; but, that might require you to understand modularity (which is pretty easy, but a barrier nonetheless).
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论