Javaクラスライブラリのソースファイル - 萌えJava超入門
Javaクラスライブラリ

Javaクラスライブラリの
ソースファイル

OpenJDKのアーカイブファイルの中にソースファイルがあります。

src.zip

Javaクラスライブラリのソースファイルの場所


萌えJava超入門
このチュートリアルではソースファイルを見ながら
学習することはあまりないのだけれど、
中の様子を確認しておきたいので
紹介してみるぞ。
ソースファイルは、OpenJDKのアーカイブファイル(zip とか tar.gz)の中にあります。
JDKのインストールのときに openjdk-xxxxxx.zip や、openjdk-xxxxxx.tar.gz をダウンロードした方は、 それが、OpenJDKのアーカイブファイルです。
展開して中を見てみましょう。

お手元にない場合は、https://jdk.java.net/ からダウンロードしてみて下さい。

jdk.java.net
jdk_java_net
ご利用のバージョンを選んでください。
ココでは「8」を選択しました。

jdk.java.net/8
jdk_java_net
パソコンの環境にあったファイルを選択してください。

openjdk の中身抜粋
openjdk-8u41-b04-windows-i586-14_jan_2020.zip
    │
    └├--java-se-8u41-ri
         ├--bin   ←java javac jar など
         ├--jre
         │   └--lib
         │       └--rt.jar  ←クラスライブラリ本体
         ├--lib
         └--src.zip     ←クラスライブラリのソースファイル


src.zip を展開すると、rt.jarと同じようなパッケージで、
classファイルの代わりに、ソースファイル(.java)が入っています。
メモ帳などで開くと、Javaで書かれたソースファイルであることがわかると思います。


重要
 ライブラリクラスは、
 「Java超入門」で学習してきたクラスと同じ様に作られていて、
 同じルールで使用できます。

Javaクラスライブラリのソースファイル(ごく一部)
src.zip
    │
    ├--java
    │    │
    │    ├--lang   基本的なクラス
    │    │    └--*
    │    ├--awt   ウインドウの表示関連(swing に近縁)
    │    │    ├--Container.java
    │    │    ├--BorderLayout.java
    │    │    ├--FlowLayout.java
    │    │    ├--GridLayout.java
    │    │    ├--Graphics.java
    │    │    ├--Graphics2D.java
    │    │    ├--Color.java
    │    │    ├--Font.java
    │    │    ├--BasicStroke.java
    │    │    ├--Dimension.java
    │    │    ├--Point.java
    │    │    ├--Rectangle.java
    │    │    ├--GraphicsDevice.java
    │    │    ├--GraphicsEnvironment.java
    │    │    ├--Toolkit.java
    │    │    ├--Cursor.java
    │    │    │
    │    │    ├--event   GUI イベント駆動関連
    │    │    │    ├--ActionEvent.java
    │    │    │    ├--ActionListener.java
    │    │    │    ├--KeyEvent.java
    │    │    │    ├--KeyListener.java
    │    │    │    ├--MouseEvent.java
    │    │    │    ├--MouseListener.java
    │    │    │    ├--MouseMotionListener.java
    │    │    │    ├--WindowEvent.java
    │    │    │    └--WindowListener.java
    │    │    │
    │    │    ├--geom
    │    │    │    └--Point2D.java   XY座標
    │    │    │
    │    │    └--image   画像ファイル関連
    │    │         ├--BufferedImage.java
    │    │         ├--ColorModel.java
    │    │         ├--DataBuffer.java
    │    │         ├--DataBufferByte.java
    │    │         ├--DataBufferInt.java
    │    │         ├--DirectColorModel.java
    │    │         ├--Raster.java
    │    │         ├--RenderedImage.java
    │    │         └--WritableRaster.java
    │    │
    │    ├---io   テキストファイル関連
    │    │    ├--BufferedInputStream.java
    │    │    ├--BufferedOutputStream.java
    │    │    ├--BufferedReader.java
    │    │    ├--BufferedWriter.java
    │    │    ├--InputStreamReader.java
    │    │    ├--OutputStreamWriter.java
    │    │    ├--FileInputStream.java
    │    │    ├--FileOutputStream.java
    │    │    ├--FileReader.java
    │    │    ├--FileWriter.java
    │    │    ├--File.java
    │    │    ├--FileFilter.java
    │    │    ├--FilenameFilter.java
    │    │    ├--FileNotFoundException.java
    │    │    ├--Console.java
    │    │    ├--IOException.java
    │    │    └--UnsupportedEncodingException.java
    │    │
    │    ├--net   ネットワーク関連
    │    │    └--URL.java
    │    │
    │    ├--nio
    │    │    ├--IntBuffer.java   画像配列
    │    │    └--file   ファイル操作
    │    │         ├--Files.java
    │    │         ├--Path.java
    │    │         ├--Paths.java
    │    │         └--StandardCopyOption.java
    │    │
    │    ├--text
    │    │    ├--ParseException.java
    │    │    └--SimpleDateFormat.java   時間時刻のテキスト変換
    │    │
    │    └--util
    │         │  コレクション関連
    │         ├--List.java
    │         ├--Map.java
    │         ├--Set.java
    │         ├--ArrayList.java
    │         ├--HashMap.java
    │         ├--HashSet.java
    │         ├--TreeMap.java
    │         ├--TreeSet.java
    │         ├--Enumeration.java
    │         ├--Iterator.java
    │         ├--Arrays.java
    │         ├--Collections.java
    │         ├--Comparator.java
    │         │  時間時刻関連
    │         ├--Calendar.java
    │         ├--Date.java
    │         │
    │         ├--jar   実行可能jarファイル関連
    │         │    ├--JarEntry.java
    │         │    └--JarFile.java
    │         │
    │         ├--regex   正規表現関連
    │         │    ├--Matcher.java
    │         │    └--Pattern.java
    │         │
    │         └--stream
    │              └--Collectors.java
    │
    ├--javax
    │    ├--imageio
    │    │    └--ImageIO.java   画像入出力
    │    │
    │    ├--sound
    │    │    └--sampled   サウンド関連
    │    │         ├--AudioFormat.java
    │    │         ├--AudioInputStream.java
    │    │         ├--AudioSystem.java
    │    │         ├--Clip.java
    │    │         ├--DataLine.java
    │    │         ├--LineEvent.java
    │    │         ├--LineListener.java
    │    │         ├--LineUnavailableException.java
    │    │         ├--SourceDataLine.java
    │    │         └--UnsupportedAudioFileException.java
    │    │
    │    └--swing   ウインドウの表示関連
    │         ├--JFrame.java
    │         ├--JDialog.java
    │         ├--JOptionPane.java
    │         ├--JPanel.java
    │         ├--JScrollPane.java
    │         ├--JLabel.java
    │         ├--ImageIcon.java
    │         ├--JTextField.java
    │         ├--JButton.java
    │         ├--JCheckBox.java
    │         ├--JComboBox.java
    │         ├--JRadioButton.java
    │         ├--JTextArea.java
    │         ├--ButtonGroup.java
    │         ├--JMenu.java
    │         ├--JMenuBar.java
    │         ├--JMenuItem.java
    │         │
    │         ├--border
    │         │    └--LineBorder.java
    │         │
    │         ├--JFileChooser.java
    │         ├--filechooser
    │         │    ├--FileFilter.java
    │         │    └--FileNameExtensionFilter.java
    │         │
    │         ├--JTable.java
    │         └--table
    │              ├--DefaultTableColumnModel.java
    │              ├--DefaultTableModel.java
    │              └--TableColumn.java
    ├--com
    ├--org
    ├--sun
    │
  その他


萌えJava超入門 萌えJava超入門
これは前のページのクラスファイルの
拡張子を「.java」に変えただけっスね?
萌えJava超入門
その通り。
ちゃんと調べたんだけど
やっぱりこうなった。


お疲れ様でした。




© 2019 awasekagami