30億のデバイスで走るJavaとは、Oracle版のJavaをインストールする時に表示される誇大広告キャッチフレーズである。
この記事では、Javaに関する訴訟についても扱う。
原文は"3 Billion Devices Run Java." 直訳すると「30億のデバイスがJavaを実行する。」
2005年にはJavaがインストールされたデバイスは30億を超えていた
ようであるが、インストール時に表示されるようになったのはOracleがJavaを開発企業のSunごと買収した2010年ごろからのようである[要出典]。2010年における世界の人口は約70億人と言われているから、30億のデバイスというと世界人口の半分近い数と言える[1][2]。
しかし、実際には購入時にプレインストールされているだけでほとんど使用されていないケースも数えられているので、「走る(run)」というのは誇大広告で「住みついている」くらいにしておくべきかもしれない。
Javaといえば、"Write once, run anywhere"というマルチプラットフォームが売りだったが、Javaがサポートされない環境も増えてきている。
2000年よりも前までは「リッチ・クライアント」の分野でなんらかの機能をWebページに付加することが「アプレット(Java Applet)」が流行りかけていた。
し かし、マイクロソフトが勝手に改造した件の訴訟(後述)のゴタゴタや、ネットスケープナビゲータでJavaアプレットを表示しようとすると数分間一切操作を受け付けない状態(Java仮想マシンの起動に時間がかかった)になるため露骨に敬遠されるようになった。そうこうしているうちに、こちらの分野は Flash、さらに近年では所謂Ajax(Javascript)やHTML5に奪われてしまった[3]。
ChromeはJavaプラグイン(正確にはプラグインに必要なNPAPI)のサポートをやめる方針であり、実際に2015年2月のバージョン42からNPAPIをデフォルトで無効
にしている。また、2015年7月に登場したWindows10のデフォルトブラウザMiccosoft EdgeでもJavaプラグインはサポートされておらず[4]、今後もサポートしない方針である
ことが表明されている。さらには2015年10月8日、頼みの綱であったFirefoxでさえ2016年末までにNPAPIを削除することを発表した
。
そして2016年1月27日、ついにJavaの権利を有するOracleまでもがJava次期バージョンのJava9ではNPAPIをサポートしないことを発表した(もっとも2017年9月のリリース時には、Firefox側でも上記の通りJavaがサポートされなくなっていた)。もはやこの分野ではオワコンであることが確定して死を待つのみになっている。
近年ではスマートフォンが主力となったことでAndroidアプリの開発用に使われている。言語としての互換性の上ではAndroid環境は一部を除きJava Standard Editionに準拠しているため、「Java Micro Edition」で頻発した「あのライブラリがない」といったことは少ない。
だが、Android に使われている仮想マシン(DalvikVM)はJavaVMと異なるバイトコードで動くため正式には「Java」とはいえない。この点についてはOracleとGoogleで訴訟になっている(後述)。2016年のAndroid 7.0以降はOpenJDKベースになっているが、OracleのJava互換性テストを受けていないので、やはり正式には「Java」とはいえない状況は続いている。
iPhoneは、Appleの方針としてiOS上に仮想マシンや実行環境をインストールできないようにしている。従ってJavaで開発するのは非現実的な状況で、Androidと両対応したい場合にはJavaは選びづらく、結局C言語とかに流れて行ったりする。
Windows10 mobileがリリースされ、Universal Windows Platformが提唱され他のスマホOS用のソースコードが流用できると謳われたが、そこで採用されたJavaもAndroid用Javaである。だが、2016年2月25日Microsoftより開発中止が発表された。
Oracle版JavaとOpenJDKでは、Java 9から32ビット版がサポート対象外になった。32ビット版のバイナリを提供するケースは存在する。
1997年、MicrosoftはSunからライセンスを受けてJava仮想マシンを開発してWindowsに標準搭載した。しかしMicrosoftの実装はSunの要求した仕様を満たしていなかった上に、Windows上でしか動かない独自の拡張が加えられていた。クロスプラットフォーム(OSに依存しない)アプリケーションが普及するとWindowsの優位性が失われるのでMicrosoftがこういった行為に走るのは必然的な流れとも言える。このため同年10月、SunがMicrosoftを提訴。1998年3月に連邦地裁よりMicrosoftへのJavaロゴ使用停止の仮処分命令が下るなど、Sunは訴訟には勝利するが、このことが元となってWindowsにデフォルトでJava仮想マシンが搭載されることはなくなり、ブラウザ上のリッチクライアント競争においてアプレット方式が大きく出遅れるきっかけとなってしまった。
一方、Microsoftの方は2000年以降、自社の.Net Framework技術にシフトしてC#などを発表するのであるが、それはまた別の話。
最終的に両者は2004年4月にMicrosoftがSunに和解金を支払う形で和解に至っている。
Googleはスマートフォン用OSのAndroid向けにDalvik Virtual Machineを開発したが、このDalivik VMがJavaの技術を使いながらもJavaとしての要件を満たしていないとして、2010年8月に訴えを起こされた。訴えたのは、2010年1月にSunを買収してJavaの権利を引き継いだばかりのOracleである。
ハードウェアの制約が厳しいスマートフォンで、Javaの認定を受けるだけのために余計な機能をサポートするわけにはいかなかったかららしいが、実際のところはGoogleがJavaのライセンス料を支払いたくなかっただけなのではないかとみる向きもある。
争点は色々あったようだが、最終的にはJavaのAPI自体に著作権が認められるかというところに絞られた。もしこれが認められると、(有名なソフトのオープンソースクローンなど)API互換で独自実装することが大きく制約される可能性があり、この件では無関係なはずのMicrosoftなど、ソフトウェア業界全体からも関心を集めた。
一審はGoogleに有利な判決、二審はOracleに有利な判決が出たが、2015年6月にアメリカの最高裁はOracle側の主張を支持する判断をした。
2016年3月30日OracleがGoogleを再提訴して約1兆円相当の賠償請求を開始した。2016年5月26日連邦地方裁判所は、上述のJavaのAPIについて著作権を認める判決を踏まえた上で、GoogleによるAPI利用は「フェア・ユース(著作権者の許諾がいらない公正な利用)」にあたり、著作権料の支払いは必要ないとの判断を示した。
2017年2月10日Oracleはこの判決を不服として連邦巡回区控訴裁判所に上訴し、2018年3月27日同裁判所はOracleの主張を認め、本件はフェア・ユースではないとの判断を下した。
賠償額についての審理が進む中、Googleは2019年1月24日に最高裁に上訴し、APIが著作物であるという判断の見直しを求めた。上訴は受理され、2020年10月に口頭弁論がスタート。2021年4月5日、最高裁はGoogle勝訴の判決
を下し、GoogleによるAPI利用はフェア・ユースにあたると認めた。最高裁はこの判決ではAPIが著作物であるかどうかについて明言していないものの、他のソフトウェア開発が同様の訴訟に巻き込まれる可能性は低くなったとみられる。
これにより10年越しの巨大IT訴訟は、判決が二転三転した末に壮大に何も始まらないという結末を迎えた。
実際に30億のデバイスが参照したらニコニコ大百科のサーバーが落ちると思われるが、できるというだけで実際に実施されるわけではないのは本項のキャッチフレーズと同じである。
掲示板
9 ななしのよっしん
2022/06/01(水) 02:11:15 ID: 8K8a17oFBG
計算機側の進歩とライブラリ拡充の影響でJSすらまともに動くようになったからクロスプラットフォーム目的はJSやPyに取って代わられたと言えるのかな
10 ななしのよっしん
2023/02/12(日) 12:42:24 ID: htiUrTig1B
結構誤解があると思うんだけど、元々Javaは色々な機器への組み込み用からスタートした言語で、PCとかをメインで取ろうとしたわけじゃないんだよね。
実はSIMなんかのスマートカードに使われてる Java Card とかがかなりでかくて、みんな知らないところでJava使ってたりするんだよ。
11 ななしのよっしん
2025/04/04(金) 17:12:52 ID: q4Vjvmc1MU
Javaをサポートしてない環境が増えてる例を書いてほしい。
何処でも住み着いてるぞ、こいつ。
急上昇ワード改
最終更新:2025/12/08(月) 06:00
最終更新:2025/12/08(月) 06:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。