CodeGym
学習
コース
課題
アンケート & クイズ
ゲーム
ヘルプ
スケジュール
コミュニティ
ユーザー
フォーラム
チャット
記事
成功事例
アクティビティ
レビュー
サブスクリプション
ライトテーマ

レッスン

  • レビュー
  • 私たちについて
開始
学習開始
今すぐ学習を始める
  • 学習の進捗
  • コース
  • クエストマップ
  • レッスン
  • module-info.java: 構文とモジュールの作成

    JAVA 25 SELF
    レベル 60,レッスン 1
    ファイル module-info.java が何か、プロジェクト内のどこにあるか、そしてキーワード module を使ってモジュールを宣言する方法を解説します。さらに、 exports で API をエクスポートし、 requires で依存関係を追加する方法、加えて追加ディレクティブ( opens、 uses、 provides ... with)も見ていきます。講義では、サンプル、モジュール名の命名規則、プロジェクト構造の実践的な解説、モジュール化ビルドでよくあるミスも扱います。
    利用可能
  • モジュールによるカプセル化:エクスポートとインポート

    JAVA 25 SELF
    レベル 60,レッスン 2
    Java 9+ ではクラスとパッケージの上にモジュールのカプセル化が追加されました。パッケージを module-info.java の exports で明示的に公開しない限り、たとえ public クラスであっても隠れたままです。ここでは、 requires で依存関係を宣言する方法、 exports to で可視性を制限する方法、 module レベルと private/ public の違い、そして「package ... is not visible」「cannot access ...」といったコンパイルエラーが、 exports や requires の書き忘れを示してくれることを解説します。
    利用可能
  • プロジェクトのモジュール分割: ベストプラクティス

    JAVA 25 SELF
    レベル 60,レッスン 3
    Java におけるモジュール化アーキテクチャの実践ガイド。いつ・なぜコードをモジュールに分割するのか、代表的なパターン(オニオンアーキテクチャ、 api/ impl 分離、テスト用モジュール)、 module-info.java とキーワード requires/ exports による依存関係の設定、3 モジュール構成の動作サンプル、 Maven/ Gradle と IntelliJ IDEA との統合、さらに典型的なエラー(循環依存、エクスポートされていないパッケージ、誤った --module-path)の解説。
    利用可能
  • マルチモジュールプロジェクトのビルド: Maven、Gradle、IDEA

    JAVA 25 SELF
    レベル 60,レッスン 4
    Java でモジュール化プロジェクトをビルドする方法: classpath と module-path の違い、フラグ --module-path をいつ使うか、 Maven と Gradle でマルチモジュール構成をどう設定するか、そして IntelliJ IDEA からの実行方法。 module-info.java を用いたモジュール構成、 requires/ exports による依存関係、プラグイン設定、ビルド時のよくあるエラーも紹介します。
    利用可能
  • ProcessBuilder — 外部プロセスの起動

    JAVA 25 SELF
    レベル 61,レッスン 0
    Java から ProcessBuilder クラスを使って外部コマンドやユーティリティを起動する方法を解説します: それが Runtime. getRuntime(). exec() より優れている点、 directory() で作業ディレクトリを設定する方法、 environment() で環境変数を設定する方法、そして start()、 waitFor()、 getInputStream()/ getErrorStream()/ getOutputStream() でプロセスを扱う方法。クロスプラットフォーム性( cmd.exe/ ls)、 stdout/ stderr の扱いと典型的なエラーも取り上げます。
    利用可能
  • プロセスの出力の読み取りと stdin/stdout の扱い

    JAVA 25 SELF
    レベル 61,レッスン 1
    Java における外部プロセス操作の実践: stdout を Process.getInputStream() で読み取り、 stderr を Process.getErrorStream() で受け取り、 stdin へは Process.getOutputStream() で書き込む。さらに、便利な inputReader()/ errorReader()/ outputWriter() の使い方も紹介します。 java -version のようなコマンドの挙動、 deadlock を避けるためのストリームの並行読み取り、文字エンコーディング( "UTF-8")の扱い、そして Python スクリプトとの簡単なブリッジについても解説します。
    利用可能
  • プロセスのライフサイクル管理

    JAVA 25 SELF
    レベル 61,レッスン 2
    Java から外部プロセスを管理する実践: waitFor()(タイムアウトを含む)で終了を待ち、終了コードを読み取り、 destroy()/ destroyForcibly() で適切に停止し、ハングや「ゾンビ」プロセスを防ぎ、出力ストリームや例外も忘れない。クロスプラットフォームの注意点と典型的なミスを解説。
    利用可能
  • プロセスとのインタラクティブなやり取り

    JAVA 25 SELF
    レベル 61,レッスン 3
    この講義では、Java から外部プログラムと「生きた」対話を構築する方法を解説します。 stdin に書き込み、 stdout と stderr から読み取り、相互のブロッキング( deadlock)を避け、 ExecutorService で出力を並行処理し、ストリームを正しく閉じ、 ProcessBuilder を通じて Process のライフサイクルを管理します。 Python のインタラクティブスクリプトや bc ユーティリティの例を見て、バッファリングの落とし穴や flush() の必要性も取り上げます。
    利用可能
  • プロセス操作における典型的なミスの解説

    JAVA 25 SELF
    レベル 61,レッスン 4
    Java で外部プロセスを安定して扱うための実践ガイド: 未読の stdout/ stderr が原因のハングを避ける方法、出力エンコーディングの正しい設定(例えば UTF-8、 CP866)、コマンドのクロスプラットフォーム差異の考慮( ls と dir)、 process.exitValue() によるアクセス権と終了コードの処理、リソースを漏れなくクローズし、対話型での相互ブロックを避ける方法を解説します。 ProcessBuilder の適切な使い方、ストリームの並行読み取り(スレッド / ExecutorService)、 process.destroy() による正しい終了、そして File.separator を用いた移植性の高いパスについても取り上げます。
    利用可能
  • リフレクション入門: Class クラス、その必要性

    JAVA 25 SELF
    レベル 62,レッスン 0
    Java のリフレクションとは何か、フレームワークやツールにとってなぜ必要か、リフレクションの中核である Class オブジェクトがどのように動くか、そしてそれを取得する方法( .class、 getClass()、 Class.forName())を解説します。いつリフレクションを使うべきか/使わないべきか、メタデータ(名前、パッケージ、スーパークラス、インターフェース)の取得例、ミニユーティリティ「このクラスは何?」、典型的な落とし穴( ClassNotFoundException、パフォーマンス、セキュリティ)も扱います。
    利用可能
  • クラス、フィールド、メソッドに関する情報の取得

    JAVA 25 SELF
    レベル 62,レッスン 1
    本講義では Java のリフレクションを扱います。 Class API を通じて、フィールド( getFields()/ getDeclaredFields())、メソッド( getMethods()/ getDeclaredMethods())、コンストラクタ( getConstructors()/ getDeclaredConstructors())、アノテーション( getAnnotations())の情報を取得する方法を見ていきます。さらに、 Modifier を使って修飾子( public、 private、 protected、 static、 final)を判定し、「public と declared」の違いを整理し、クラスインスペクタのミニユーティリティを作ってビジュアルな図も確認します。
    利用可能
  • リフレクションのセキュリティ、制約、代替手段

    JAVA 25 SELF
    レベル 62,レッスン 2
    本講義ではリフレクションのリスクと制約を解説します: setAccessible( true) によるカプセル化の迂回、 final フィールドを書き換えようとする試みと、それが JVM の最適化のために危険である理由。さらには SecurityManager の行方、およびモジュールシステム(Java 9+)によって InaccessibleObjectException が発生する仕組みも扱います。性能や型安全性の低下、現代的な代替手段( record、 sealed、pattern matching、APT、DI)とベストプラクティスについても議論します。最後に、JVM パラメータ --add-opens を使った実践的な例を示します。
    利用可能
  • 1
  • ...
  • 26
  • 27
  • 28
  • 29
  • 30
学ぶ
  • 登録
  • Javaコース
  • 課題のサポート
  • 料金
  • Java構文
コミュニティ
  • ユーザー
  • 記事
  • フォーラム
  • チャット
  • 成功事例
  • アクティビティ
  • アフィリエイトプログラム
会社情報
  • 私たちについて
  • 連絡先
  • レビュー
  • プレスルーム
  • CodeGym for EDU
  • よくある質問
  • サポート
CodeGymCodeGym は、ゼロからJavaプログラミングを学ぶためのオンラインコースです。このコースは初心者がJavaを習得するのに最適です。即時検証付きの1200以上の課題と、Java基礎理論の必要な範囲を含みます。学習の成功を支援するために、クイズ、コーディングプロジェクト、効率的な学習に関するコンテンツ、Java開発者のキャリアに関する機能など、一連のモチベーション機能を導入しています。
フォローする
インターフェース言語
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands
日本語
한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
「プログラマーは生まれるのではなく、育てられる」 © 2026 CodeGym
MastercardVisa
「プログラマーは生まれるのではなく、育てられる」 © 2026 CodeGym