Oracle JDKとOpenJDKの違い


700

注:この質問は2014年のものです。Java11の時点で、OpenJDKとOracle JDKは収束しています。

OracleとOpenJDKの間に重要な違いはありますか?

たとえば、ガベージコレクションと他のJVMパラメータは同じですか?

GCは2つの間で動作が異なりますか?


3
Oracleはもはや無料ではないため、OracleからOpenJDKへの移行を計画している場合にも、これが関連する可能性があります。developers.redhat.com/blog/2018/11/05/...
レオUfimtsev

回答:


338

OpenJDKとOracle JDKの両方は、現在Oracleによってのみ作成および保守されています。

OpenJDKとOracle JDKは、TCK(Java Technology Certification Kit)を通過した同じJava仕様の実装です。

JDKのベンダーのほとんどは、TCK互換性を損なうことなく[主にライセンスされた専用パーツを置き換える/特定のOSでのみ機能するより高性能なアイテムで置き換える]コンポーネントにいくつかの微調整を行うことでOpenJDKの上に書かれています。

多くのベンダーがJava仕様を実装し、TCKに合格しました。たとえば、IBM J9、Azul Zulu、Azul Zing、Oracle JDKなどです。

ほとんどすべての既存のJDKはOpenJDKから派生しています。

多くの人が示唆しているように、ライセンスはJDK間の変更です。

JDK 11以降、長期サポートにアクセスするには、Oracle JDK / Java SEに商用ライセンスが必要になります。サブスクリプションなしのOracle JDKが機能しなくなる可能性があるため、インストールするJDKに注意する必要があります。ソース

参照:Java仮想マシンのリスト


13
それで、openjdkが他のすべてのjdkのベースラインであり、それをコピーして、独自の仕様に合わせて微調整するということですか?
Karl Morrison、

24
私はパーティーに遅れますが、とにかく尋ねます。jdkはopenjdkが提供しないものをテーブルにもたらしますか?これらのすべての答えは、openjdkがあらゆる点で同等または優れているように聞こえるようにしますが、その場合、Oracleがjdkを維持する手間がかかるのはなぜですか?
ケフカ2018年

@ Karl Morrison私が知る限り、.. JVM仕様を実装しているすべての人がその方法でのみ実行しています..しかし、その方法に従う必要があるという明確なルールはありません...
Venkateswara Rao

13
@ Mella OpenJDK <= OracleJDKたとえば、Oracle JDKにはOpenJDKにないいくつかの信頼できるキーが設定されています(現在、このギャップを埋めるためにインポートしているだけです)Oracle JDKには、レンダリングを高速化するための独自のSWINGライブラリがあります..(これまでサーバーアプリケーションを実行していた場合、それらには無関係である可能性があります)Oracle JDKにはアプレットプラグインがあります(上記と同じ理由で機能します)Oracle JDKバグ修正/修正プログラムはOracleによって適切に配布および処理されます。パッチが適用され、どのような競合が発生するか
Venkateswara Rao

Javaの新しいリリースモデルについては、Oracleは両方のjdk間のギャップをできる限り減らすことを計画しています。オラクル開発者以外のオープンjdkへの他のオープンソース寄稿者はいますか?これは、修正を最新バージョンから前のバージョンにバックポートするのに十分なサポートがあるかどうかを理解するためです。何かご意見は?
アンディDufresne

329

以下のためのJava 7、決定的な何もありません。OpenJDKプロジェクトは、主にSunから提供されたHotSpotソースコードに基づいています。

さらに、OpenJDKはJava 7のリファレンス実装として選択され、Oracleエンジニアによって保守されています。

Oracleブログの投稿にリンクしているJVM、JDK、JREOpenJDKの違いに関する2012年の詳細な回答があります

Q:OpenJDKリポジトリにあるソースコードと、Oracle JDKのビルドに使用するコードの違いは何ですか?

A:非常に近いです。OracleJDKリリースのビルドプロセスは、JavaプラグインとJava WebStartのOracleの実装、およびいくつかのクローズドソースの3番目を含むデプロイメントコードなど、ほんの数個を追加することでOpenJDK 7に基づいて構築されます。グラフィックラスタライザなどのパーティコンポーネント、Rhinoなどのいくつかのオープンソースサードパーティコンポーネント、追加のドキュメントやサードパーティフォントなど、あちこちにいくつかあります。今後は、JRockit Mission Control(まだOracle JDKでは利用できません)などの商用機能を検討しているものを除き、Oracle JDKのすべての部分をオープンソース化し、障害のあるサードパーティコンポーネントをオープンソースの代替手段に置き換えて、より近いパリティを実現することを目指していますコードベース間。


42
また、ライセンスの違いもあります。
mcoolive 2015年

9
おかげで私はより良い答えを見つけました。 stackoverflow.com/questions/17360011/...
astroanu

9
ARMでは、少なくともこれら2つはパフォーマンスが大幅に異なるようです。なぜそれが起こっているのかについていくつかプロファイリングする必要がありますが、主観的な違いは「Oracle JDKは問題ない」と「OpenJDKは完全に使用できない」です。
dualed

1
それにもかかわらず、@ dualedはandroid 7からopenjdkに移行しています。大幅な改善を準備しているようです。vendorbeat.com/2015/12/29/…–
Johnny Doe、

1
@JohnnyDoe GoogleがOpenJDKに移行する場合、Android以外のARMでも適切に実行できるように、上流にパフォーマンスパッチを提供することを期待しましょう。
dualed

95

今後の主な違いは、リリーススケジュールとサポートポリシーです。

OpenJDK

OpenJDKには6か月ごとに機能リリースがあり、次の機能リリースまでのみサポートされます。これは本質的に、開発者向けの継続的なリリースの流れです。

Oracle JDK

Oracle JDKは、安定性を重視する企業ユーザーを対象としています。OpenJDKリリースの1つに基づいていますが、長期サポート(LTS)が提供されます。Oracle JDKのリリースは3年ごとに計画されています。

ここに画像の説明を入力してください

出典:https : //www.oracle.com/java/java9-screencasts.html?bcid=5582439790001&playerType=single-social&size=events


3
長期リリースでは、Javaリリースの6か月後にアップデートを入手するには、商用サポートを購入する必要があります。短期リリースと比較した場合の長期リリースの重要性は何ですか?JDK 9/10のような短期間のリリースには、Oracleからの商用サポートはありませんか?
アンディDufresne

@AndyDufresneなぜ、わずか6か月後にサポート料金を支払う必要があると思いますか?私の理解では、タイムラインは未定です。6か月はひどく短いようですが、Java 8のように5年間のパブリックアップデートが期待できるとは思えませんが、2年間または3年間パブリックアップデートがあったとしても驚くことはありません。参照-これは次のとおりです: oracle.com/technetwork/java/eol-135779.html
ギルバートアレナスダガー

1
オラクルリンクは、「たとえば、Oracleライフタイムサポートポリシーに記載されているように、Oracle JDK 11のLTSリリース(18.9 LTS)は少なくとも5年間サポートされます」と述べています。ポリシーには3つのレベルのサポートがあり、どれも無料ではないようです。また、azul CTOのコメント(blog.takipi.com/java-11-will-include-more-than-just-features/…)を見て、これについても触れます。この新しいリリース戦略の主な目的は、古いリリースの保守に時間を費やさないことです。サポートが無料だった場合、モデルはこれまでと同じになります。
アンディDufresne

38

以下のためのJava 8、OpenJDKの対OracleのJDKは、重要な違いで取るマイ:

  • OpenJDKは、OracleおよびオープンJavaコミュニティの貢献によるJava Standard Editionプラットフォームのオープンソース実装です。

  • OpenJDKはライセンスGPL v2の下でリリースされ、Oracle JDKはOracle Binary Code License Agreementの下でライセンスされます。

  • 実際、Oracle JDKのビルドプロセスはOpenJDKソースコードからビルドされます。したがって、Oracle JDKとOpenJDKの間に大きな技術的な違いはありません。基本コードとは別に、Oracle JDKには、OracleのJava PluginとJava WebStartの実装が含まれています。また、グラフィックラスタライザやRhinoのようなサードパーティのクローズドソースおよびオープンソースコンポーネントも含まれています。OpenJDK Font RendererとOracle JDK Flight Recorderは、Oracle JDKとOpenJDKの顕著な主な違いです。

  • RockitはOracleのJVMであり、Java SE 7以降、HotSpotとJRockitは単一のJVMに統合されました。これで、マージされたHotSpot JVMのみが利用可能になりました。
  • OpenJDKの実行中に問題があり、Oracle JDKに切り替えたときに問題が解決したと人々が主張する場合があります。
  • Twitterには独自のJDKがあります。
  • Minecraftのようなソフトウェアは、Oracle JDKの使用を想定しています。実際、警告します。

違いの完全なリストについては、ソース記事を参照してください:Oracle JDK対OpenJDKおよびJava JDK開発プロセス


4
Android Studioの場合、これは当てはまりません。最新のOpenJDKのコピーがAndroid Studio 2.2以降にバンドルされています。これは、Androidプロジェクトで使用することをお勧めするJDKバージョンです。ソース:developer.android.com/studio/intro/studio-config#jdk
MKesper 2018年

「Minecraftのようなソフトウェアは、Oracle JDKの使用を想定しています。実際、警告しています。」実際、Ubuntuでは、Mojangの公式.debインストーラーがランチャーのインストール時にOpenJDKを取り込みます。
Moilleadóir

29

OracleとOpenJDKのJVMは同じであり、同じGC機能を備えています(最新バージョン10以降)。OracleがOpenJDK JVMを管理する前は、多くの環境で古いOpenjdk JVMをほとんど使用できなくする具体的な違いがありました。JVMは同じになりました。

キットの一部としてJVMを含むJDKは、ライセンス、リリース、メンテナンススケジュール、およびJDKに含まれるソフトウェアライブラリによって異なります。私にとって重要な違いは、存在しない場合にコードが実行されなくなることも意味します。ライセンスだけではありません。

diff --brief -r openjdk oraclejdk

重要なのは、Linux JDKの他のファイルに加えて、次のファイルが欠落していることです(そのため、javafxを使用しているときに、そのコードがOpenJDKで機能せず、OracleJDKで機能しなかった場合、問題ありませんでした)。

Only in jdk-10.0.1/bin: javapackager
Only in jdk-10.0.1/bin: javaws
Only in jdk-10.0.1/bin: jcontrol
Only in jdk-10.0.1/bin: jmc
Only in jdk-10.0.1/bin: jweblauncher
Only in jdk-10.0.1/lib: ant-javafx.jar
Only in jdk-10.0.1/lib: deploy
Only in jdk-10.0.1/lib: deploy.jar
Only in jdk-10.0.1/lib: desktop
Only in jdk-10.0.1/lib: fontconfig.bfc
Only in jdk-10.0.1/lib: fontconfig.properties.src
Only in jdk-10.0.1/lib: fontconfig.RedHat.6.bfc
Only in jdk-10.0.1/lib: fontconfig.RedHat.6.properties.src
Only in jdk-10.0.1/lib: fontconfig.SuSE.11.bfc
Only in jdk-10.0.1/lib: fontconfig.SuSE.11.properties.src
Only in jdk-10.0.1/lib: fonts
Only in jdk-10.0.1/lib: javafx.properties
Only in jdk-10.0.1/lib: javafx-swt.jar
Only in jdk-10.0.1/lib: java.jnlp.jar
Only in jdk-10.0.1/lib: javaws.jar
Only in jdk-10.0.1/lib: jdk.deploy.jar
Only in jdk-10.0.1/lib: jdk.javaws.jar
Only in jdk-10.0.1/lib: jdk.plugin.jar
Only in jdk-10.0.1/lib: jfr
Only in jdk-10.0.1/lib: libavplugin-53.so
Only in jdk-10.0.1/lib: libavplugin-54.so
Only in jdk-10.0.1/lib: libavplugin-55.so
Only in jdk-10.0.1/lib: libavplugin-56.so
Only in jdk-10.0.1/lib: libavplugin-57.so
Only in jdk-10.0.1/lib: libavplugin-ffmpeg-56.so
Only in jdk-10.0.1/lib: libavplugin-ffmpeg-57.so
Only in jdk-10.0.1/lib: libbci.so
Only in jdk-10.0.1/lib: libcmm.so
Only in jdk-10.0.1/lib: libdecora_sse.so
Only in jdk-10.0.1/lib: libdeploy.so
Only in jdk-10.0.1/lib: libfxplugins.so
Only in jdk-10.0.1/lib: libglassgtk2.so
Only in jdk-10.0.1/lib: libglassgtk3.so
Only in jdk-10.0.1/lib: libglass.so
Only in jdk-10.0.1/lib: libgstreamer-lite.so
Only in jdk-10.0.1/lib: libjavafx_font_freetype.so
Only in jdk-10.0.1/lib: libjavafx_font_pango.so
Only in jdk-10.0.1/lib: libjavafx_font.so
Only in jdk-10.0.1/lib: libjavafx_iio.so
Only in jdk-10.0.1/lib: libjfxmedia.so
Only in jdk-10.0.1/lib: libjfxwebkit.so
Only in jdk-10.0.1/lib: libnpjp2.so
Only in jdk-10.0.1/lib: libprism_common.so
Only in jdk-10.0.1/lib: libprism_es2.so
Only in jdk-10.0.1/lib: libprism_sw.so
Only in jdk-10.0.1/lib: librm.so
Only in jdk-10.0.1/lib: libt2k.so
Only in jdk-10.0.1/lib: locale
Only in jdk-10.0.1/lib: missioncontrol
Only in jdk-10.0.1/lib: oblique-fonts
Only in jdk-10.0.1/lib: plugin.jar
Only in jdk-10.0.1/lib: plugin-legacy.jar
Only in jdk-10.0.1/lib/security: blacklist
Only in jdk-10.0.1/lib/security: public_suffix_list.dat
Only in jdk-10.0.1/lib/security: trusted.libraries
Only in openjdk-10.0.1: man`

5
実際の違いを指摘していただきありがとうございます。実行されていないコードは現実の問題です。どこから基礎を築きdiffましたか?
Matthieu 2018年

19

オラクルのブログによると、Java 11以降のOracle JDKリリース

Java 11以降、Oracleは、オープンソースのGNU General Public License v2、クラスパス例外(GPLv2 + CPE)、およびOracle製品またはサービスの一部としてOracle JDKを使用する商用ライセンスの下でJDKリリースを提供します。またはオープンソースソフトウェアを使用したくない人。このオープンソースライセンスと商用ライセンスの組み合わせにより、無料の商用条件と有料の商用条件が組み合わされた従来の「BCL」ライセンスが置き換えられます。

ライセンスごとに異なるビルドが提供されますが、これらのビルドは、外観とパッケージの違いを除いて、機能的には同じです。

BCLからGPLへ

Oracle Java SEテクノロジバイナリコードライセンス(「BCL」)は、10年以上にわたってOracle Java SEテクノロジの主要なライセンスでした。BCLは、特定の条件下でライセンス料なしの使用を許可します。今後の作業を簡略化するために、Oracleは、Linuxプラットフォームと同じライセンスモデルを使用して、Java 9の時点でオープンソースライセンスのOpenJDKビルドの提供を開始ました。Oracle Java SEバイナリを無料で入手することに慣れている場合は、jdk.java.netで入手できるOracleのOpenJDKビルドを使用して、そのまま続行できます。Oracleから商用製品またはサービスの一部としてOracle Java SEバイナリを取得することに慣れている場合は、My Oracle Support(MOS)およびその他の場所からOracle JDKリリースを引き続き取得できます。

機能的に同一で交換可能...

オラクルのBCLライセンスのJDKには、歴史的にOpenJDKビルドでは利用できない「商用機能」が含まれていました。ただし、約束どおり、過去1年間、オラクルはOpenJDKコミュニティに次の機能を提供しています。

したがって、Java 11以降、Oracle JDKビルドとOpenJDKビルドは基本的に同じになります。

...まだいくつかの化粧品とパッケージの違い

少数の違いが残っています。いくつかは意図的で表面的なものであり、一部は単にOpenJDKの貢献者と話し合う時間がもっと必要なためです。

  • Oracle JDK 11は-XX:+ UnlockCommercialFeaturesオプションを使用すると警告を発しますが、OpenJDKビルドではこのオプションはエラーになります。OpenJDKには商用機能がないため、このオプションはOpenJDKの一部ではなかったため、ここで追加しても意味がありません。この違いは、Oracle JDK 10以前のリリースのユーザーがOracle JDK 11以降に簡単に移行できるようにするために残されています。
  • Oracle JDK 11 は、個別の商用Oracle製品である「Advanced Management Console」ツールに使用ログデータを提供するように構成できます。他のOpenJDK寄稿者と協力して、そのような使用状況データが将来のリリースのOpenJDKでどのように役立つかについて話し合います。この違いは、主に、そのような決定がなされるまでOracleのお客様に一貫したエクスペリエンスを提供するために残っています。
  • javac --releaseコマンドの動作は、Java 9およびJava 10ターゲットでは異なります。これらのリリースでは、Oracle JDKに、対応するOpenJDKリリースの一部ではないいくつかの追加モジュールが含まれていたためです。
    • javafx.base
    • javafx.controls
    • javafx.fxml
    • javafx.graphics
    • javafx.media
    • javafx.web
    • java.jnlp
    • jdk.jfr
    • jdk.management.cmm
    • jdk.management.jfr
    • jdk.management.resource
    • jdk.packager.services
    • jdk.snmp

この違いは、特定の種類のレガシー使用で一貫したエクスペリエンスを提供するために残っています。これらのモジュールは、OpenJFXの一部として個別に利用できるようになったか、OpenJDKとOracle JDKの両方に含まれるようになりました。 。

  • java --versionおよびjava -fullversionコマンドの出力は、Oracle JDKビルドとOpenJDKビルドを区別するため、サポートチームは存在する可能性のある問題を診断できます。具体的には、java --versionをOracle JDK 11ビルドで実行すると、次の結果になります。

Java 11 2018-09-25

Java(TM)SEランタイム環境18.9(ビルド11 + 28)

Java HotSpot(TM)64ビットサーバーVM 18.9(ビルド11 + 28、混合モード)

OpenJDK 11ビルドの場合:

openjdkバージョン "11" 2018-09-25

OpenJDKランタイム環境18.9(ビルド11 + 28)

OpenJDK 64ビットサーバーVM 18.9(ビルド11 + 28、混合モード)

  • Oracle JDKでは、サードパーティの暗号化プロバイダーに既知の証明書による署名を常に要求しています。OpenJDKの暗号化フレームワークにはオープンな暗号化インターフェースがあり、使用できるプロバイダーを制限しません。Oracle JDK 11は引き続き有効な署名を必要とし、Oracle OpenJDKビルドは引き続き有効な署名または署名されていないサードパーティの暗号プロバイダーの使用を許可します。
  • Oracle JDK 11には、従来のデスクトップの使用と一貫したエクスペリエンスを実現するために、インストーラー、ブランディング、およびJREパッケージが引き続き含まれます。Oracle OpenJDKビルドは現在、zipおよびtar.gzファイルとして入手できますが、代替の配布形式も検討されています。

10

Oracle JDK 11とOpenJDK 11の残りのいくつかの外観上の違いとパッケージの違いのリストは、このブログ投稿にあります。

https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later

要するに:

  • Oracle JDK 11は、-XX:+ UnlockCommercialFeaturesオプションを使用すると警告を発します。
  • 「高度な管理コンソール」ツールに使用ログデータを提供するように構成できます。
  • 常に、サードパーティの暗号化プロバイダーに既知の証明書による署名を要求している、
  • インストーラー、ブランディング、JREパッケージが含まれます。
  • 一方、javac --releaseコマンドの動作は、Java 9およびJava 10ターゲットでは少し異なります。
  • java --versionおよびjava -fullversionコマンドの出力は、Oracle JDKビルドとOpenJDKビルドを区別します。

2
あなたの回答のほとんどに署名が含まれていることに気づきました。私はそれらを編集しました。「タグラインと署名は許可されていませんか?」をご覧くださいおよびstackoverflow.com/help/behavior(具体的には、セクション「署名、タグライン、または挨拶を使用しないでください。」)
Mark Rotteveel

7
  1. Oracleは3年ごとにリリースを提供し、OpenJDKは6か月ごとにリリースされます。
  2. Oracleは、そのリリースに対して長期的なサポートを提供しています。一方、OpenJDKは、次のバージョンがリリースされるまで、リリースへの変更をサポートします。
  3. Oracle JDKはOracle Binary Code License Agreementに基づいてライセンスされていますが、OpenJDKにはリンクの例外を除いてGNU General Public License(GNU GPL)バージョン2があります。
  4. Oracle製品には、Flight Recorder、Java Mission Control、およびApplication Class-Data Sharing機能があり、OpenJDKには、Font Renderer機能があります。
  5. Oracle JDKはOracle Corporationによって完全に開発されていますが、OpenJDKはOracle、OpenJDK、およびJavaコミュニティによって開発されています。ただし、Red Hat、Azul Systems、IBM、Apple Inc.、SAP AGなどの一流企業も、その開発に積極的に参加しています。

Java 11から大きな変化へ

オラクルは、オープンソースと商用ライセンスの組み合わせで、従来の「BCL」ライセンスを変更します

  • OracleのJava 11キットは-XX:+ UnlockCommercialFeaturesオプションを使用すると警告を発しますが、OpenJDKビルドではこのオプションはエラーになります
  • Oracle JDKは、「高度な管理コンソール」ツールに使用ログデータを提供する構成を提供します
  • OpenJDKの暗号化フレームワークにはオープンな暗号化インターフェースがあるため、Oracleは常にサードパーティの暗号化プロバイダーに既知の証明書による署名を要求してきました。つまり、使用できるプロバイダーに制限はありません。
  • Oracle JDK 11には、インストーラー、ブランド、およびJREパッケージが引き続き含まれますが、OpenJDKビルドは現在、zipおよびtar.gzファイルとして入手できます。
  • javac –releaseコマンドは、Oracleのリリースにいくつかの追加モジュールが存在するため、Java 9ターゲットとJava 10ターゲットでは動作が異なります
  • java –versionおよびjava -fullversionコマンドの出力は、OracleのビルドとOpenJDKビルドを区別します


更新:25-Aug-2019



ここに画像の説明を入力してください

詳細については、oracle-vs-openjdk



5

明らかなライセンスの違いは別として、OpenJDKとOracleJDK 11の主な違いは、安定性とパフォーマンスの更新です。

出典:https : //www.youtube.com/watch?v=Adv9--6IcQI&t=385

6か月ごとに2つのコードベースが同期します。ただし、6か月の期間中、OpenJDKはセキュリティ更新のみを受け取り、OracleJDKは安定性とパフォーマンスの更新を受け取ります。

OpenJDKとOracleJDKの両方で更新リリースが3か月ごとにしか発生しないことを考えると、次のメジャーリリースがリリースされてアップグレードされるまで、(最大で)3か月分の修正を見逃していることになります。ただし、LTSリリースに固執することを選択した場合は、商用ライセンスの方が理にかなっています。


3

また、Java 8についてはAMIS Technology BlogによってさまざまなJVMでホストされている反応性(非ブロッキング)Spring Boot RESTアプリケーションの興味深いパフォーマンスベンチマークが2018年11月に公開されており、以下のような違いがあります。

  • OpenJDKはOracleJDKよりもCPU使用率が高く、
  • OpenJDKはOracleJDKよりもわずかに短い応答時間です。
  • OpenJDKはOracleJDKよりもメモリ使用量が多く、

詳細については、ソースの記事を参照してください。

もちろんYMMV、これはベンチマークの1つにすぎません。


3

私の理解では、Oracle JDKは本番環境では使用できないため、会社用に構築しているWebアプリケーションには合法的に(支払わずに)使用することはできません。OpenJDKを使用する必要があります。間違えたら訂正してください!この記事から。

Java 11以降、Oracle JDKは開発環境とテスト環境に限定されています。Oracle JDKは、商用サポートを購入した場合にのみ、本番環境で使用できます。代わりに、オラクルは本番環境で使用できるOpenJDKに基づくJavaビルドを無料で提供します。しかし、公式のOracle JDKの場合、実際のロードマップは次のようになります。

更新:私は間違っています。私は無料でOracle JDKを使用できますが、6か月後にセキュリティ更新を取得できず、リスクを負う必要があります。上記のリンクされた記事セクション「私の会社にとって新しいリリーストレインは何を意味しますか?」


Oracleによると、Oracle JDKには次の新しいライセンスがあります。以前のOracle JDKライセンスは使用できなくなる可能性があります。」oracle.com/downloads/licenses/javase-license1.htmlを参照してください。
ALフラナガン

知りたかっただけですが、oracle jdk8u241の現在のリリースは、本番環境での使用は無料ですか?
Nirav Shah
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.