JDK源代码许可不一致

时间:2013-04-23 10:56:39

标签: licensing java gpl

我安装了最新的JDK(1.7.0_21)。当我在Eclipse中查看基础类的源代码时,例如java.lang.String,文件顶部的许可证为:

/*
 * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

此源代码来自JDK版本附带的src.zip文件。

当我在这里查看源代码时: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/java/lang/String.java?av=f

...我看到了GPL v2.0许可证标题。

/*
 * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

据我所知,JDK 1.7作为完全开源发布,根据GPL 2.0获得许可。

有人可以解释许可证差异吗?

2 个答案:

答案 0 :(得分:3)

OpenJDK在GPL 2.0下发布

来自OpenJDK FAQs

  

OpenJDK在哪个开源许可下发布?

     

几乎所有虚拟机的GPL v2,以及GPL v2 +   类库的类路径异常和类的那些部分   公开API的虚拟机。

     

Oracle是否会更改OpenJDK许可模式?

     

没有。 OpenJDK社区继续蓬勃发展   甲骨文,以及其他公司,研究人员和个人,以及   基于GPL的许可模式是这一成功的重要组成部分。   甲骨文没有计划改变它。

Oracle JDK是在Oracle许可下发布的。 来自FAQs

  

Java SE继续在Oracle二进制代码许可下可用   (BCL)免费。

答案 1 :(得分:2)

您正在查看两个不同的版本一个是OpenJDK 7的旧版本,另一个是基于OpenJDK的Oracle JDK的最新版本。