自由的Java实现

✍ dations ◷ 2025-11-03 14:44:59 #自由的Java实现

自由的Java实现是用来实现Oracle Java,并在自由软件许可证下发布的软件。Sun公司在2007年5月将大部分Java的实现代码以开源协议发布,所以Oracle Java基本上是开源实现,但是从2019年4月16日起,Oracle Java颁布了新的许可协议,这将会对Oracle Java的商业使用造成影响。Java实现包括编译器、运行时、类库等。自由软件的倡导者们将自由的Java虚拟机称为自由Java运行时或自由的运行时。

一些自由软件运动的倡导者不愿意使用“Java”一词,因为它存在版权问题。因此,即使是“自由Java运动”,他们也避免使用“自由Java运行时”一词。

第一个提供大量Java平台功能的自由软件项目是Guavac,它在1995年11月左右开始。此后,自由软件运动开发了其他Java编译器,最著名的是GNU Java编译器。其他还包括由Eclipse基金会维护的Eclipse Java编译器(ECJ)和不再积极维护的Jikes。从GCC4.3开始,GCJ(GCC所附带的Java编译器)使用ECJ解析器前端来解析Java,但GCJ于不久后停止开发。

自由的运行时的例子则包括Kaffe、SableVM和gcj。

GNU Classpath是Java的主要自由类库。大多数自由的运行时都使用GNU Classpath作为其类库。

2005年5月,Apache Harmony宣布成立,然而,该项目选择了Apache许可证,而Apache许可证在当时与所有现有的自由Java实现不兼容。

2005年5月的另一个事件是OpenOffice.org宣布OpenOffice 2.0将依赖于某些特定的Java功能,而这些功能是自由软件实现无法提供的。在争议之后,OpenOffice.org采用了一个指导方针,要求它能够与自由的Java实现相兼容。

在2006年11月之前已经与自由软件Java实现合作的著名应用程序包括OpenOffice.org和Vuze,这两个应用程序都可以使用GCJ编译。

相关

  • 种加词种加词(英文:specific epithet),又称种小名,指双名法中物种名的第二部分,另一部分为属名。在植物学名命名法中,“种名”指的是物种的完整学名,而在动物学名命名法中,“种名”既可以指
  • 游戏游戏,既可以指人的一种娱乐活动,也可以指这种活动过程。游戏的道具可以为玩具。在英语,体育比赛(Game)亦是游戏的一种,而体育运动亦是由游戏演变出来。游戏是一种有组织的玩耍,一般
  • 潮差潮差是指一个潮汐周期内,最高潮与最低潮水位之间的落差。潮汐是海洋受到地球自转以及月球和太阳的万有引力共同作用引起的涨落现象。潮差大小和太阴盈亏有关。朔望后一二日,潮
  • 冬山风筝馆冬山风筝馆位于宜兰县冬山乡冬山国民小学内,因为冬山国小大力推展风筝运动,在行政院文化建设委员会及宜兰县政府的大力支持下,于1997年11月在冬山国小搬迁新校舍时正式成立。冬
  • 王神爱王神爱(384年-412年),晋安帝司马德宗的皇后。琅琊临沂人。祖父王羲之、父王献之都是中国古代大书法家,母为晋简文帝女新安愍公主司马道福。王皇后本人也工于书法。太元二十一年(39
  • 光学晶体管光学晶体管,又称为光学开关或光阀门,是切换或放大光学信号的装置。在光学晶体管输入端出现的光会改变晶体管输出端的光的强度,而且输出功率会由附加光源提供。由于输入信号的强
  • 陈征蔚陈征蔚(Charles Zhengwei Chen,1973年-),出生于台湾台北市,国立中山大学外文系学士,国立政治大学英文系硕士,国立政治大学英国语文学系文学组博士,是台湾最早研究电脑文化、数位文学
  • BS朝日BS朝日(ビーエスあさひ、BS朝日、BS Asahi)为日本的卫星电视业者,是朝日电视台及全日本新闻网(ANN)的关联企业。本部搬迁至东京都六本木新城森大楼16层。成立于1998年12月,开播于2
  • 干预权干预权是声称美国的州有权反对其认为联邦政府违宪的行动。按照干预论,一州被认为有权在联邦政府和本州人民间,通过行动来阻止联邦政府强制(实施)该州认为违宪的举措,进行干预。在
  • 欧梅河欧梅河(加利西亚语:Río Eume)是位于伊比利亚半岛西北部加利西亚地区的一条河流。它发源自卢戈省阿瓦丁市的希斯特拉尔山脉,最终注入贝坦索斯湾。欧梅河流域共建有2个水库。为了保护欧梅河流域的自然资源,加利西亚政府于1997年正式成立了弗拉加斯-欧梅自然公园。保护区占地9125.65公顷,包括卡瓦尼亚斯、阿卡佩拉、蒙费罗和蓬特德乌梅等市镇。蓬特斯德加尔西亚罗德里格斯流域自然公园入海口桥卡瓦尼亚斯流域卡瓦尼亚斯和蓬特德乌梅之间的入海口坐标:.mw-parser-output .geo-default,.mw