忍者ブログ
バイオインフォマティックス技術者試験、情報処理試験など、IT系の試験を基礎から勉強します。また、Javaなどプログラミングを勉強します。

【Java】競技プログラミングの最高峰「AtCoder(アットコーダー)」参戦 #1

AtCoderのアカウント作成から、プロジェクト生成、Mavenを用いたローカル環境での実行、提出までの手順をまとめる。環境は最新のJava 24に準拠する。


1. 練習問題「practice contest」の確認

提出テスト用のコンテストとして、常設されている「practice contest」を使用する。問題一覧から「A - Welcome to AtCoder」を選択し、入力形式を確認する。


2. 作業ディレクトリの作成とプロジェクト生成

ターミナル(zsh)を開き、作業用の親ディレクトリを作成した上でMavenプロジェクトを生成する。

# 1. 競プロ用の親ディレクトリを作成して移動
mkdir atcoder && cd atcoder

# 2. Mavenプロジェクトを生成
mvn archetype:generate \
  -DgroupId=jp.atcoder \
  -DartifactId=practice-contest \
  -DarchetypeArtifactId=maven-archetype-quickstart \
  -DinteractiveMode=false

# 3. 生成されたプロジェクトディレクトリへ移動
cd practice-contest

3. 解答コードの実装

src/main/java/jp/atcoder/App.javaMain.java にリネーム。以下のJava 24対応コードを記述する。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 整数の入力
        int a = sc.nextInt();
        // スペース区切りの整数の入力
        int b = sc.nextInt();
        int c = sc.nextInt();
        // 文字列の入力
        String s = sc.next();
        // 出力
        System.out.println((a + b + c) + " " + s);
    }
}

4. ローカルでのコンパイルと実行

practice-contest/(pom.xmlが存在するディレクトリ)で実行確認を行う。

# コンパイル
mvn compile

# 実行
mvn exec:java -Dexec.mainClass="jp.atcoder.Main"

5. 提出と結果の確認

提出欄のプルダウンから「Java 24 (OpenJDK 24)」を選択して提出。
結果、ステータスが「AC」となり、無事に正解(OK)となったことを確認した。




PR

【Java】ビルドツール「Apache Maven(メイヴン)」の利用

Javaエンジニアへの登竜門、ビルドツール「Apache Maven(メイヴン)」に挑戦しました。最新のmacOS Sequoia環境で、インストールからエラーを乗り越えて「Hello World!」を拝むまでのプロセスを全公開します。

1. Mavenとは何か?

Mavenは、Javaプロジェクトの「ビルド(コンパイルなど)」や「ライブラリ管理」を自動化するツールです。これを使えるようになると、複雑な外部ライブラリの導入も pom.xml という設定ファイル一つで完結するようになります。

2. Mavenのインストール(Mac / Homebrew)

Macではパッケージ管理ツール Homebrew を使うのが最もスマートです。ターミナルで以下のコマンドを実行してインストールとバージョン確認を行います。

# Mavenをインストール
brew install maven

# 正常にインストールされたか確認
mvn -version
[ 今回の検証環境 ]
・OS:macOS Sequoia 15.6.1 (Apple Silicon)
・Java:25.0.1 (Homebrew経由)
・Maven:3.9.12

[ 実際の出力結果 ]
Apache Maven 3.9.12 (848fbb4bf2d427b72bdb2471c22fced7ebd9a7a1)
Java version: 25.0.1, vendor: Homebrew
OS name: "mac os x", version: "15.6.1", arch: "aarch64", family: "mac"

3. アーキタイプ(Archetype)でプロジェクトを作る

Mavenには「アーキタイプ(Archetype)」という強力な機能があります。これは一言でいうと「プロジェクトの金型(設計図)」です。コマンド一行で、Javaの標準的なフォルダ構成を自動生成できます。

mvn archetype:generate \
  -DgroupId=com.example \
  -DartifactId=my-app \
  -DarchetypeArtifactId=maven-archetype-quickstart \
  -DarchetypeVersion=1.4 \
  -DinteractiveMode=false

実行後、インターネットから必要な部品が次々とダウンロードされ、最後に BUILD SUCCESS と表示されれば my-app フォルダ内にプロジェクトが完成します。

4. 【要注意】コンパイルエラーの壁と解決策

プロジェクト作成後、mvn compile を実行したところ、以下のエラーに遭遇しました。

[ERROR] ソース・オプション7は現在サポートされていません。8以降を使用してください。

最新のJava 25を使っているにもかかわらず、アーキタイプがデフォルトで「Java 7」という古い設定を書き込んでしまったことが原因です。プロジェクト直下の pom.xml を開き、<properties> セクションを以下のように修正します。

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>

5. 運命の実行:Hello World!

設定を修正したら、改めてコンパイルと実行を行います。Maven経由でJavaプログラムを起動できる exec:java コマンドが非常に便利です。

# ① コンパイル
mvn compile

# ② 実行
mvn exec:java -Dexec.mainClass="com.example.App"

ついにターミナル上に "Hello World!" の文字が表示されました。Mavenの「お作法」に則ってプログラムを動かすことができた瞬間です。


6. まとめ

・アーキタイプは「標準構成」を自動で提供してくれる便利な設計図。
・最新OSでのインストールはHomebrewを活用するのがベスト。
・Javaバージョンの不一致エラーは pom.xml の書き換えで解決可能。

ビルドツールの基礎を固めることで、今後のより複雑な開発にも「納得感」を持って取り組むことができそうです!


【Java】Apache Tomcat 10を導入:Java Webアプリを動かす「舞台」を整える

前回の記事でIntelliJ IDEAを導入し、Javaプログラムを動かせるようになりました。今回はさらに一歩進んで、作成したプログラムをWeb上に公開するための「Webアプリケーションサーバ」である「Apache Tomcat」の導入に挑戦します。

1. 導入:Webアプリケーションの裏側を知る

JavaでWebアプリを動かすには、ブラウザからのリクエストを受け取り、Javaプログラムを実行して結果を返す「サーブレットコンテナ」が必要です。そのデファクトスタンダードが、このApache Tomcatです。

2. Tomcat 10の準備とJavaのバージョン確認

最新のTomcat 10系は、従来のJava EEから「Jakarta EE」へと進化したモダンな仕様に対応しています。まずは、手元の環境が対応しているか確認しましょう。

[ 今回の検証環境 ]
・OS:macOS
・Java:17.0.16 (LTS)
・入手元:Apache Tomcat 公式サイト

[ ダウンロードのポイント ]
・公式サイトの「Binary Distributions」から、Mac(UNIX系)で扱いやすい zip版 または tar.gz版 を選択します。

3. 展開と「パーミッション(権限)」の壁

ダウンロードしたファイルを展開した後、Mac特有の「実行権限」の設定が必要になります。これを忘れると、スクリプトを実行しようとしても「Permission denied」と怒られてしまいます。

# binディレクトリへ移動
cd apache-tomcat-10.1.x/bin

# 起動・停止スクリプトに実行権限を付与
chmod 775 startup.sh
chmod 775 catalina.sh
chmod 775 shutdown.sh

H2 Databaseの導入時と同様に chmod を使います。起動用の startup.sh だけでなく、停止用の shutdown.sh にもあらかじめ権限を与えておくのが、スムーズな開発のコツです。

4. 起動確認:localhost:8080 への接続

いよいよサーバーを起動させます。ターミナルで以下のコマンドを叩きましょう。

./startup.sh

ブラウザで http://localhost:8080 を開き、おなじみの猫のアイコンと共に "Congratulations!" の文字が表示されれば成功です。自分のMacが「Webサーバー」として産声を上げた瞬間です。

5. 安全な停止と今後の展望

確認が終わったら、リソースを解放するためにサーバーを停止させます。

./shutdown.sh

6. まとめ

これで「データベース(H2)」「開発環境(IntelliJ)」「Webサーバー(Tomcat)」の三種の神器がすべて揃いました。次はいよいよ、これらを「連結」させて、実際に動くWebシステムを作り上げるフェーズへと探求を進めていきたいと思います!



【Java Mac環境構築】IntelliJ IDEAでJava開発をスタート:JDKの選択で躓いた経験と解決策

1. 導入:なぜIntelliJ IDEAを選んだのか

プロのJavaエンジニアの間で圧倒的なシェアを誇るIDE(統合開発環境)、それが「IntelliJ IDEA」です。Eclipseなど他の選択肢もありますが、今回はその強力な補完機能とモダンな操作性を探求するため、MacにCommunity Editionを導入してみました。

2. インストールはシンプル:ドラッグ&ドロップの世界

1.公式サイトからMac用の**.dmg**ファイルをダウンロード。

2.Applicationsフォルダへドラッグ&ドロップ。 Macらしい直感的なインストールで、ここまでは順調でした。

3. プロジェクト作成と「JDK」の罠

新規プロジェクト作成時、一つの壁にぶつかりました。

発生したトラブル: すでにMacにインストールされていたJDKを指定したところ、なぜかプロジェクトのビルドがうまくいきませんでした。

解決策: 悩んだ末、IntelliJの機能にある**「Download JDK...」**から「Oracle OpenJDK」を直接ダウンロードして設定し直したところ、嘘のようにスムーズに解決しました。

プロの現場でも「環境変数」や「パス」の不一致でハマることは多いと聞きます。IDEが推奨するクリーンな設定をそのまま受け入れる柔軟さも、時には必要だと学びました。

4. Java 21以降のモダンな「Hello World」に挑戦

今回は、最新のJavaで導入された「簡易メインメソッド(Unnamed Classes and Instance Main Methods)」のスタイルを意識してコードを書きました。


【検証したコード】

Java
void main() {

    IO.println(String.format("Hello World!!"));

}

従来の public static void main(String[] args) というおまじないを省略できるこの書き方は、初心者にもプロの素早い検証にも非常に有用だと感じます。

5. 実行結果と今後の展望

実行ボタン(▶)一つでコンソールに Hello World!! と出力された瞬間、自分だけの開発環境が整った実感が湧きました。

今後は、先に導入した「H2 Database」とこの「IntelliJ」を連携させ、実際のアプリケーション開発へ一歩踏み出してみたいと思います。