• 締切済み

コマンドライン引数って?

人に聞いたり、いろんな本を読んでいるのですが、 「コマンドライン引数」がどういうものなのか 今ひとつ分かりません。 初歩的な質問ですみません。 よろしくお願いします。

noname#164037
noname#164037
  • Java
  • 回答数3
  • ありがとう数2

みんなの回答

  • Snowman
  • ベストアンサー率66% (6/9)
回答No.3

 もしかしたら、そもそも「コマンドライン」とは何のことなのか、それがピンと 来てないのかもしれませんね。Windows しか使ったことがないと、「コマンドライ ン」を使う機会がそもそもないでしょうから。  コマンドライン引数が「コマンドライン」引数と呼ばれるのには、歴史的な理由が あります。  ウィンドウシステムのない時代には、コンピュータに何かをさせるためには常に、 キーボードを打って、やらせたい命令を与える必要がありました。  その、やらせたい「命令」のことを「コマンド」と言いました。  キーボード入力で「コマンド」を与えると、そのコマンドに対応するプログラム が動いたわけです。  そして、「命令」にはしばしば、パラメータがあります。たとえば次のように コマンドを与えたとすると、  del a.txt  これは、 a.txt というファイルを削除しろ、という命令(コマンド)になります。  このようなコマンドは、Windowsの時代であればほぼ使う必要はありません。ファイルを クリックしてゴミ箱に入れればわけですから。  ところが、Window システムがない場合は、上記のような文字をキーボードで打ち込む 必要があるわけです。  キーボードでコマンドを打ち込んでいくと、途中、空白で区切ることはあっても基本的 には一行にずらずらとつながっていきます。そのようにコマンドを入力する場所のことを コマンドラインといいます。コマンドを入力する行だからコマンドラインです。  そして、コマンドラインで指定するパラメータのことを、コマンドライン引数と 呼ぶわけです。上の例で言えば a.txt がコマンドライン引数です。(ただし、del の 部分も含めてコマンドライン引数と考える場合もあります) 以上。

noname#164037
質問者

お礼

そうなんです。 そもそもコマンドラインが何かがよく分かってなくて。 でもSnowmanさんのおかげでよく分かりました。 まさに「かゆいところに手が届く」説明、どうもありがとうございました!

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

Java のプログラムを実行させる時、コマンドラインに >java MyClass のように、入力しますよね? 「java」というのは、Javaアプリケーションを実行させるためのプログラムの名前です。そして、「MyClass」というのが、実行させたいJavaアプリケーションのクラスの名前になりますが、このとき、「MyClass」は「java」にとってのコマンドライン引数なのです。 つまり、「java」というコマンドを、「MyClass」というコマンドライン引数で呼び出した、ということなのです。これによって、コマンドライン引数「MyClass」が「java」コマンドに伝えられて、MyClassが実行されます。 もう一つ他の例を考えてみましょう。 Javaのソースファイルをコンパイルする時、 >javac MyClass.java のように入力します。 この場合は、「javac」というコマンドを「MyClass.java」というコマンドライン引数で呼び出した、ということになります。これによって、「MyClass.java」というコマンドライン引数が「javac」コマンドに伝えられて、javac は MyClass.java をコンパイルします。 最後の例です。Java アプリケーションそのものに、コマンドライン引数を渡してみます。まずは、そのサンプルプログラムを書きます。 class Sample {   public static void main(String[] args) {     System.out.println(args[0]);   } } これをコンパイルしたあと、次のコマンドで実行してみます。 >java Sample abcdefghi すると、次のように画面に出力されるはずです。 abcdefghi これは、「Sample」というJavaアプリケーションを、「abcdefghi」というコマンドライン引数で実行したのです。少しややこしいですが、 「java」のコマンドライン引数が「Sample」と「abcdefghi」になっていて、「java」は「Sample」というJavaアプリケーションを「abcdefghi」というコマンドライン引数で実行させたのです。 さて、「Sample」プログラムは、「abcdefghi」という引数で実行されますが、この値は上に書いたプログラムの args という String の配列に格納されています。このプログラムは、args に格納されたコマンドライン引数の値を取り出し、それを画面に出力したのです。 あまりうまく説明できなかったかもしれませんが、コマンドライン引数がどんなものかつかめてもらえたでしょうか。 プログラムを呼び出す時に引数といっしょに呼び出し、伝えられた引数を使ってプログラムは処理をするということです。

  • Spur
  • ベストアンサー率25% (453/1783)
回答No.1

外部や内部のコマンドを呼び出す時に、その動きを決定するために、一緒に渡すパラメータ(引数)のことです。 通常はコマンドの後ろに、半角スペースをひとつ入れて、その後に書くか、「?」などでつないで書きますが、書き方は、その呼び出すコマンドの種類や言語によって違います。

関連するQ&A

  • コマンドライン引数について

    コマンドライン引数について opencvのサンプルを試しているのですが、困っています。 xcodeでビルドするとビルドは問題ないのですが、実行できない状態のものがあります。実行できないものは「デバックは正常に終了しました」や「ステータス255で終了しました」と出てしまいます。 前回の質問でコマンドライン引数が問題ではないか?とアドバイス頂き、色々と調べたのですが、main関数がコマンドライン引数をとることは理解出来たところで止まっています…。引数の指定の方法がわからず、Terminalから指定しようとexeファイルを開けて入力しようとしてみるのですが「プロセスは完了しました」と出てしまい、入力することができません… このやり方があっているかわからず、混乱しています。もし、検討違いのことを言っていたらすみません。 誰か引数の指定方法についてご存知であれば、アドバイス頂けないでしょうか? よろしくお願い致します。

  • コマンドライン引数ってなんですか?難しいのでわかり

    コマンドライン引数ってなんですか? わかりやすく教えてください。お願いします。

    • ベストアンサー
    • Java
  • コマンドライン引数って・・・?

    java言語を勉強中です。 コマンドライン引数って何ですか? 検索しても本を読んでもイマイチ理解できません…。 どこの部分に、どの様な形式で記入すればいいのでしょう? またその記入によって何が実行されるのですか? すいませんが、全くの初心者なので分かりやすく説明して 頂けませんか? 宜しくお願いします。

    • ベストアンサー
    • Java
  • コマンドライン引数

    コマンドライン引数の文字列(__argv[●】)に "\n"を追加したいのですがポインタにポインタを加えようとしました っとでてできません。どうすればいいのでしょうか?

  • コマンドライン引数はどこからやって来たのですか?

    こんにちは Javaで、 public static void main(String args[]) という引数は、どこからやって来たのでしょうか? これがコマンドラインに初めて書かれる文だとしたら、どこから引数を貰うのでしょうか? また、2番目に書いたクラスだったとしても、他のクラスのなかのものをそんな簡単に貰うことはできるのでしょうか? もし宜しければ回答お願い致します。

    • ベストアンサー
    • Java
  • コマンドライン引数の例外処理について

    整数a、bをコマンドライン引数として受け取るプログラムを作成するとします。この時、入力するコマンドライン引数を整数であるa、b2つのみとします。 次の事柄について教えて下さい。 (1)コマンドライン引数を2個入力しなかった時の例外処理の仕方 (例えば、コマンドライン引数を入力しなかったり3個入力した時) (2)整数のコマンドライン引数を入力しなかった時の例外処理の仕方 (例えば、「abc」などと入力した場合) (3)コマンドライン引数を数の小さいものから入力しなかった時の処理の仕方 (例えば、「3 5」ではなく「5 3」と入力した場合) 初心者なもので…。どなたかお教え下さい。宜しくお願いします。

    • ベストアンサー
    • Java
  • コマンドライン引数の使い方

    [プロジェクトプロパティ]の[実行可能ファイルの作成]のコマンドライン引数の設定方法、使い方がよくわかりません。VBのヘルプを見てもいまいちです。具体的な利用例を使って教えて下さい。

  • コマンドプロンプトを使用してのコマンドライン引数

    winXPのコマンドプロンプトを利用して 参考書「独習C」を使い、C言語の学習をしています。 その本の7.4の項目~main()の引数~で main(int argc,char *avgv[])を利用すると コマンドラインから引数をとることができるとありますが 私の学習環境ではうまくいきません。 具体的には #include <stdio.h> int main(int argc, char *argv[]) { int i; for(i=1; i<argc; i++) printf("%s ", argv[i]); return 0; } というプログラムを実行しても何も表示されません。 どうすればコマンドライン引数を利用できますか?

  • コマンドラインの引数が正しくありません。

    Outlook Expressでメール送ろうとしたら戻ってきます。 それで、色々調べましたが、解らず、相手からきたメールの中の相手のメールの 所を、押したら、(コマンド ラインの引数が正しくありません。使用しているスイッチを確認してください)とでるのは・・・・なぜですか? メールの文字が間違っているのかなー? 教えてください。なお、PCは、MEです。

  • コマンドライン引数

    1~10の整数のコマンドライン引数を受け取り、それと等しい英語及び受け取った引数の数を表示するプログラムを作りたいのですがわかりません。 引数がない場合、1~10以外の整数の場合はエラーメッセージを表示させてプログラムを終了するようにしたいです。 出力する英語の文字列は String 配列に格納するようにします。 実行結果です。 % java englishNum 2 3 1 Two Three One length : 3 % java EnglishNum No Parameter! % java EnglishNum 30 Only 1-10!

    • ベストアンサー
    • Java

専門家に質問してみよう