コンソールアプリケーション()は、キャラクタユーザインタフェース(CUI)またはテキストユーザインタフェース(TUI)のような、テキストコンソールを経由した入出力のみを必要とし、グラフィカルユーザインタフェース(GUI)を必要としないアプリケーションソフトウェアである。コンソールアプリ()とも表記される。
概要 GUIアプリがウィンドウシステムなどを必要とするのと比べ、標準ストリームなど機種依存の少ない環境のみで動作できることなどが利点である。GUI環境中では、端末エミュレータを通して、またWindowsのWin32コンソール(cmd.exeはこれを利用して実装されている)のようなフレームワークの中で動作させられる。
一般的に任意の数のコマンドライン引数を入力として受け取ることができ、整数値による終了コード(終了ステータスコード)を起動元に返すことができる。シェルスクリプトを使って入力を変えながらコンソールアプリケーションを連続的に起動・実行・終了したり、終了コードに応じて分岐したり、出力結果を別のアプリケーションの入力に使ったりすることもできるため、定型処理の自動化(バッチ処理)に適している。
数値や文字列のような、装飾を必要としない単純なデータであれば、標準出力によって処理結果をコンソール上で即座に確認しやすいため、標準入出力をサポートする汎用プログラミング言語の基礎学習や、プログラム部品の単体テストC# 単体テスト チュートリアル - Visual Studio (Windows) | Microsoft Learnあるいはパフォーマンス(性能)テストなどにも適している。
プログラミング言語の処理系(コンパイラやリンカなど)、バージョン管理システムといったツールは、バッチ処理ができるようにコンソールアプリケーション(コマンドラインツール)として実装されている。ただし直感的に操作できるようにするためにGUIフロントエンドでラップされることもある。
Visual StudioやRAD Studioのような統合開発環境には、コンソールアプリケーションのプロジェクトテンプレートが用意されているCreate a C++ console app project | Microsoft Learnコンソール アプリケーション - RAD Studio。XcodeではmacOS向けに、「Command Line Tool」という名称のプロジェクトテンプレートが用意されているmacOS上で動くCLIアプリ作成ガイド - ユニファ開発者ブログ。
一方、AndroidやiOSといった、コンソールが用意されていない(エンドユーザー向けに開放されていない)モバイルオペレーティングシステムではコンソールアプリケーションを利用できず、またサードパーティが自由に開発することもできない。
例
ImageMagick
脚注 出典
関連項目 バッチ処理