首页 > 数据库 >[转帖]Oracle 败了、谷歌赢了:Java API 版权案最终裁决

[转帖]Oracle 败了、谷歌赢了:Java API 版权案最终裁决

时间:2024-04-21 09:12:24浏览次数:29  
标签:Java 此案 谷歌 转帖 API Oracle Android

https://zhuanlan.zhihu.com/p/362496136

 

周一,最高法院在Oracle围绕移动操作系统Android中所用软件的一起旷日持久的版权诉讼中判谷歌胜诉。

法院的判决为6比2。大法官Amy Coney Barrett没有参与此案。

该案涉及谷歌用于构建Android的12000行代码,这些代码是从Sun Microsystems开发的Java应用程序编程接口复制过来的,Oracle在2010年收购了Sun Microsystems。

Oracle起诉谷歌使用其代码,并在美国联邦巡回上诉法院两次赢得了诉讼。最高法院推翻了联邦巡回法院的裁决。

在该案中撰写多数判决意见的法官Stephen Breyer认为,谷歌使用代码受到合理使用的版权原则的保护。

Breyer写道:“我们得出的结论是,在此案中,谷歌重新实现了用户界面,仅采用了让用户可以在新的、变革性的程序中让积累的人才可以发挥作用所需要的代码;按照法律,谷歌复制Sun Java API是合理使用这些材料。”

赞同Breyer的还有首席大法官John Roberts和这几位大法官:Sonia Sotomayor、Elena Kagan、Neil Gorsuch和Brett Kavanaugh。两位大法官Clarence Thomas和Samuel Alito持反对意见。

由于谷歌的许多支持者担心Oracle前几年的胜利会阻碍创新,并引发更多同类的API诉讼,从而严重影响技术行业和软件行业,此案在业界备受关注。另一些人则认为,Oracle应该得到补偿,不获得版权以保护API对创建者和消费者不公平。不管您支持哪一个科技巨头,诉讼结果都会对公司企业使用和开发软件的方式产生影响。

背景

 

2010年8月,Oracle对谷歌提起诉讼,声称谷歌未经许可擅自使用Java API作为Android操作系统的一部分,因此侵犯了专利和版权。

Oracle赢得了最新一轮诉讼,此案退回到地方法院,以确定谷歌因侵犯Oracle的版权而需要支付多少损害赔偿金。双方在此案中已进行多个回会的较量,因此为了帮助读者了解此案的来龙去脉,我们列出了主要看点。

诉讼时间表

 

  • 1995年——Sun Microsystems推出Java。
  • 2005年——谷歌收购了Android Inc.,继续使用Java开发Android操作系统。
  • 2006年——谷歌拒绝了Sun方面的提议:若使用为期3年的Java许可,需支付2000万美元,外加谷歌与Android有关的收入的10%(上限为2500万美元)。
  • 2007年——谷歌发布了Android平台的beta测试版,并宣布它将使用一些Java技术。
  • 2010年——Oracle通过斥资74亿美元收购原始开发者Sun Microsystems,收购了Java软件。几个月之内,Oracle对谷歌提起了诉讼,指控Android操作系统基于Java而建,侵犯了其专利。
  • 2011年——Oracle要求谷歌支付高达60亿美元的损害赔偿金。Oracle首席执行官Larry Ellison和谷歌首席执行官Larry Page被勒令进行谈判以达成和解,但未能达成协议。
  • 2012年——陪审团未能一致确定谷歌使用37个Java API作为Android API的一部分是否属于合理使用。之后,谷歌要求宣布审判无效,Oracle则动议法院判决:谷歌的合理使用辩护不适用于此案。美国地方法院法官William Alsup否决了Oracle的动议。
    当月下旬,Alsup法官裁定API不受版权保护,谷歌在在Android中使用Java API不构成侵权。
  • 2012年——地方法院就版权侵犯诉讼做出对谷歌有利的最终判决,不过rangeCheck函数和8个反编译的安全文件除外。关于rangeCheck和8个反编译的安全文件,地方法院做出了对Oracle有利的判决。围绕rangeCheck和8个反编译文件,Oracle提出了上诉,谷歌则提出了反上诉。
  • 2014年——美国上诉法院推翻了Alsup法官的先前裁决,裁定Oracle的37个Java API软件包实际上受版权法保护。上诉法院还就rangeCheck函数和8个反编译的安全文件做出了对Oracle有利的裁定,并要求案子退回到初审法院,进入进一步的诉讼程序。
  • 2014年——谷歌提交请愿书,要求美国最高法院审核联邦巡回法院的裁决。
  • 2015年——最高法院驳回了谷歌要求审理此案的请愿书。
  • 2016年——此案退回到了初审法院,陪审团裁定谷歌的Android操作系统未侵犯Oracle拥有的版权,原因是根据版权法,谷歌使用Java API属于“合理使用”。
  • 2017年——Oracle向美国联邦巡回上诉法院提起上诉。
  • 2018年——美国联邦上诉法院裁定谷歌使用Oracle的Java编程技术不属于“合理使用”,推翻了先前的裁决。此案退回到初审法院,以裁定损害赔偿金。

标签:Java,此案,谷歌,转帖,API,Oracle,Android
From: https://www.cnblogs.com/jinanxiaolaohu/p/18145058

相关文章

  • Solon Java 应用开发框架 v2.7.5 发布
    JavaSolon是什么框架?Java“新的”应用开发框架。从零开始构建(非java-ee架构),有灵活的接口规范与开放生态。追求:更快、更小、更简单提倡:克制、简洁、高效、开放、生态有什么特点?更高的计算性价比:并发高2~3倍;内存省50%更快的开发效率:内核小,入门快;调试重启快5......
  • 最新Java面试题带答案【2024中级】
    互联网大厂面试题1:阿里巴巴Java面试题2:阿里云Java面试题-实习生岗3:腾讯Java面试题-高级4:字节跳动Java面试题5:字节跳动Java面试题-大数据方向6:百度Java面试题7:蚂蚁金服Java面试题-中级8:蚂蚁金服Java面试题-高级9:京东Java面试题-中级10:拼多多Java面试题-电商部11:商汤科技......
  • java 异步任务,定时任务,邮件发送
    java异步任务,定时任务,邮件异步任务异步方法注解:@Async主程序开启异步注解功能:@EnableAsync定时任务开启定时功能的注解在main:@EnableSchedulingTaskScheduler:任务调用者TaskExecutor:任务执行者@EnableScheduling开启定时功能的注解@Scheduled固定......
  • Java 安全基础之 Java 反射机制和 ClassLoader 类加载机制
    目录Java反射机制反射java.lang.RuntimeClassLoader类加载机制URLClassLoaderJava反射机制Java反射(Reflection)是Java非常重要的动态特性。在运行状态中,通过Java的反射机制,我们能够判断一个对象所属的类。了解任意一个类的所有属性和方法。能够调用任意一个对象的任意方......
  • java Swagger 使用汇总
    Swagger1.Swagger简介最流行的api框架restfulapi在线自动生成工具:api文档与api定义同步更新直接运行,可以在线测试api接口支持多种语言:java,php2.官网https://swagger.io在项目中使用swagger需要springboxswagger2ui3.SpringBoot集成Swaggerhttps://mvnreposito......
  • Java面试题:为什么HashMap不建议使用对象作为Key?
    HashMap是一种基于哈希表的动态数据结构,它允许使用任意不可变对象作为键(key)来存储和检索数据。然而,在某些情况下,使用对象作为HashMap的键可能会遇到一些问题。 首先,我们需要明确对象作为HashMap的键需要满足一些条件:不可变性:对象的属性不能被修改,因为如果属性被修改,那......
  • JavaScript变量的奥秘:从声明到使用,一文掌握!
    在编程的世界里,数据是构建一切的基础。而在JavaScript中,变量就是存储数据的容器。它们就像是我们生活中的盒子,可以装下各种物品,让我们在需要的时候随时取用。今天,就让我们一起揭开变量的神秘面纱,探索它们的概念、使用规则,以及那些令人头疼的错误。一、变量的概念和作用变量,顾名......
  • 01、Java 安全-反序列化基础
    Java反序列化基础1.ObjectOutputStream与ObjectInputStream类1.1.ObjectOutputStream类java.io.ObjectOutputStream类,将Java对象的原始数据类型写出到文件,实现对象的持久存储。序列化操作一个对象要想序列化,必须满足两个条件:该类必须实现java.io.Serializable接口,......
  • 【Java 线程】SpringBoot 启动后都有哪些线程呢?
    1 前言现在流行搞微服务,基本也都是SpringBoot打底的,那么你可否知道一个基本的SpringBoot启动后,都开辟了哪些线程呢?这节我们就来看看。为什么要看呢?这个主要是增加对服务的了解,比如你管的支付中心或者订单中心,你都有哪些线程,各个线程都是干什么的,你不了解这些你怎么调优,你......
  • 4.Java流程控制
    Java流程控制Scannner对象(获取用户的输入)//基本格式:Scannerscanner=newScanner(System.in);Stringstr=scanner.nextLine();//其中nextLine()按情况替换scanner.close();publicstaticvoidmain(String[]args){//创建一个扫描器对象,用于接受......