Avatar ·

Oracle JDK与OpenJDK对Java开发者来说有什么区别?

大家好!我是一名初学Java的开发者,有些困惑。当我在自己的电脑(Windows 10)上安装Java时,看到两个选项:Oracle JDK和OpenJDK。我通常从Oracle官网下载,但最近工作中要求使用OpenJDK。

我尝试在两个JDK上编写了一个简单的Java 11程序——运行起来似乎一样:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

但我注意到,编译时Oracle JDK会发出一些警告,而OpenJDK不会。我还听说Oracle JDK现在对商业使用收费。这是真的吗?还是只针对旧版本?

请告诉我:

  • 它们之间真正的区别是什么?
  • 学习和生产环境应该选择哪个JDK?
  • 在OpenJDK上编写的代码能在Oracle JDK上运行吗,反之亦然?
  • 有没有什么隐藏的