IDEAビルドJDKのソースコード読取環境と遭遇した問題


背景

プロジェクト内で直接見るJDKのソースコード、それはコメントを追加することはできません、あなたは地元構築する必要があります

の構築

JDKのソースコードの純粋な方法でブログ記事を作成する前に成功している(https://blog.csdn.net/qq_42191317/article/details/102772497)が、(行方不明パッケージ)エラーをコンパイルした後に行く、とシリーズの問題なので、他のものの上に直接構築するgitのクローンからの最終決定。私たちは、添付の決勝の前に練習します。

私は直接の出身https://github.com/wupeixuan/JDKSourceCode1.8ローカルで使用するためにここにクローンを直接開いて、まだ問題を抱えている(ソースコードを読むとき、ソースコード自体にJDKのソースに関連付けられている方法にクリックしてください) 、以下を参照してください

彼らは何が起こるか構築しますか?
最初のIの出会いは次のとおりです。

  • 不足のcom.sun.toolsパッケージ
  • 不足sun.awt.UNIXToolkitとsun.font.FontConfigManager 2つのクラスは、エラーを投影するつながります

私は自分自身を構築あきらめたように、2つは、私は、本当の人々が着用し、最初の良い、項目に対応した、独自のクラスに手動でこれらのファイルを見つけるために、インターネットからの第二見つけるのに長い時間を見つけた、またはエラー。

不足のcom.sun.toolsパッケージ

ここに画像を挿入説明
ソリューション:ファイル=>プロジェクト構造=>以下のように、プロジェクトに追加したJDKのパスの下にライブラリのlibパッケージ:
ここに画像を挿入説明

不足sun.awt.UNIXToolkitとsun.font.FontConfigManager 2つのクラスは、エラーを投影するつながります

解決策:手動でsrcディレクトリにこれら2つのクラスを追加します
ここに画像を挿入説明

JDKソースにソースコード自体にクリックに関連付けられたメソッドのソースコードを読みます

ここに画像を挿入説明
私は、AQSの外観は、クラスメソッドで見ることができfile is readonly、その後、JDKに直接クリックし、ソースコードを発見し、ではなく、私自身の建物、そしてこれは私が自分自身のJDKのソースが行くをクリックして構築された方法であり
ここに画像を挿入説明
、あまりにもこれを難しいです

リファレンスのブログにも答えを与えるが、完全な書き込みませんでした。
ソリューション:src.zipファイルを除外するには、次の図を操作することができます。
ここに画像を挿入説明
そうする家主による第1文は、右、我々は確認している
ここに画像を挿入説明
私の直接の完全削除した後、私自身が構築されたJDKのディレクトリSRC追加
ここに画像を挿入説明
このカテゴリに先立ちAQSクリックに従って、操作を完了した後、上記の、または入力してJDKが見つからソースコード自体は、私は絶望、良い解決策を見つけられませんでした。

それは非常に長い時間がかかりました。
ガス私は、このクラスで見つかったキーボードを打った後、キーボードを打つ実際には次の図を入力することができ、ファイルは読み取り専用ではなく、あなたが書くことができましたか?

ここに画像を挿入説明
それでも多分私は愚かだ、知りません

それは、このクラスが、ここで指していることが、それ自体ではここではないだろうか?(私は理解していない、私は表現しません)

ここに画像を挿入説明
右のアイテムコピーパス、絶対パスは、私はJDK環境でもzipパッケージのJDK下の左のショーに、独自のコードを構築するために、パスをインストールしたが言ったパスではありません参照してください。

したがって、この変形例では、その後、私自身の見解を構築するためにJDKのディレクトリが変更されています。

ここに画像を挿入説明

案の定、私は成功したディレクトリの変更を構築し、私の考えが正しい、と私は、公式文書のアイデアはどのように言って見に行ったら、この1はちょうどその、この設定をsourcePathはを変更しましたか?
ここに画像を挿入説明
住所:HTTPS://www.jetbrains.com/help/idea/2016.3/sdk.html

中国への可能性のある完全な翻訳が簡単に理解することはないが、containing the source code for the SDK binaries included in the classpath set.ここでは其中包含类路径集中包含的SDK二进制文件的源代码。、クラスパスがあることである
ここに画像を挿入説明
はい、ほとんどの(トピックオフ)でrt.jarの中にJavaソースコードの私たち、ここではクラスパスのポイントが、ソースコード内で、ここにあります上記sourcePathはを通じて類似していリダイレクト 位置にちょうど私の独自のルールを構築。

ウー〜

ああハハ、それは(ジップJDKの中にコメントを追加しようとして)非常に厄介に見えるが、私は、そう思いますが、完璧ではないが、実際に、問題(リダイレクト)を解決しますが、十分な友人ハッハッハ

その他の問題

いくつかの家主の参照他の問題は、私がデバッグを持っていますが、最初の数ステップと、彼らはまったく同じと言うので、彼らの問題への道も記録されていないものの、後で使用されます。があります

クラスxxxxは無効であるため、デバッグ時間は、代替ソースのavailbleを遅らせます

ここに画像を挿入説明
ソリューション:オープン設定=>デバッガ、次の図に、このオプションを選択します。
ここに画像を挿入説明

毎日のニュースのコンパイルのjava:不十分のOutOfMemory、ヒントシステムリソース

コンパイルデイリーニュースのjava:OutOfMemoryを、示唆不十分なシステムリソース(https://blog.csdn.net/ljj821061514/article/details/52371037)

私の元のデフォルトの設定は1000年に、700で、問題なし
ここに画像を挿入説明

自動的に現在のプロジェクトのsrcディレクトリ(これ、私が言ったように、問題)の下でコードが実行を作​​るために、コードに関連しました

自動的に通常の使用JDKのソースには影響を与えないために、私は1.8studyを作成した(現在のプロジェクトのsrcディレクトリ下のコード実行を行うために、コードに関連した、唯一の違いは、元のsrc.zipがjdk1.8-ソースを置き換えることですsrcディレクトリを-study)(https://blog.csdn.net/u011837804/article/details/80450809)
ここに画像を挿入説明
元のリンクします。https://blog.csdn.net/u010999809/article/details/101922489

手動で構築された(gitのクローンを通じて、お勧めできませんではありません)

少し疲れてこのように、それは推奨されません、githubのに巨人の肩の上にフロントラインで、良いを見つけることをお勧めします。
このようにしてからします。https://blog.csdn.net/qq_42191317/article/details/102772497

簡単な紹介

あなたはJDKのソースが読み取り専用に許可されて表示するときに、プロジェクトの開発では、あなたが変更したり、コメントを追加することはできません。学習JDKのソースコードを容易にするために、私たちの環境をセットアップする最初の必要性は、コメントや他の操作を追加し、JDKのソースコードを変更することができます。

ステップ1:プロジェクトを作成します。

オープンIDEA、良いJDKを選択し、通常のJavaプロジェクトを作成します。

ステップ2:インポートソース

JDK8バージョン我々はプロジェクトを作成し、そのため自動的に良いコード間の依存関係を設定を選択することにより、私たちは何をする必要があるインポート元のプロジェクトにあります。

JDK JDKのソースコードは、SRCフォルダの圧縮袋の下に位置しています。

新しいプロジェクトのディレクトリを開きます。

プロジェクトのsrcディレクトリへのsrcアーカイブの解凍

環境が構築され、次の旅行を読んJDKのソースコードを開始することができます!

参照

https://blog.csdn.net/u010999809/article/details/101922489
https://www.jianshu.com/p/c00db010265b
https://blog.csdn.net/u011837804/article/details/80450809
ます。https:/ /blog.csdn.net/qq_42191317/article/details/102772497

公開された548元の記事 ウォンの賞賛3281 ビュー258万+

おすすめ

転載: blog.csdn.net/dataiyangu/article/details/105011703