如果我复制并更改java的源代码并在我的商业软件中使用它,那么我的完整程序是否会获得GPL?
我需要更改TreeMap的功能。
答案 0 :(得分:1)
你不应该改变TreeMap的源代码,而应该像escitalopram在评论中所说的那样扩展它:
class MyTreeMap extends TreeMap {
void myShinyFunction() { ... }
@Override
void someNiceFunctionInTreeMap() { ... }
}
如果您没有扩展TreeMap的功能(例如,您希望由于某种原因而更改私有方法/字段而不是公共API),那么您应该自己实现一个新类,而不是修改源代码。 / p>
但要直接尝试回答原来的问题:
据我了解,Java SE位于Oracle Binary Code license:
之下Java SE继续在Oracle二进制代码许可下可用 (BCL)免费。
和OpenJDK源代码是released under GPL v2:
OpenJDK在哪个开源许可下发布?
几乎所有虚拟机的GPL v2,以及GPL v2 + 类库的类路径异常和类的那些部分 公开API的虚拟机。
如果您修改了OpenJDK源代码并将其放入商业程序中,那么根据我的理解,您的整个程序需要是GPL。但是,我不是律师,这些信息可能不正确。如果您打算这样做,咨询一个是个好主意。