• ベストアンサー

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

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

  • Java
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

引数で何が実現できるかと。 たとえば、3の2乗を計算するプログラムがあるとします。 処理は、3×3 = 9 で、9が結果として返ってきます。 答えはいつも9です。 計算できるのは、3の2乗だけです。 このプログラムができることは、それだけ。 こんなプログラムは正直要りません。欲しくないです。 こんな書き方だと、数がかわるたびにいちいちプログラム作りなおし です。 われわれが欲しいのは、 ある数を与えられたらその数を2乗した結果を返してくれる といったプログラムです。 157を与えたら、157の2乗の24649を答えとして返してくるし、 233を与えたら、233の2乗の54289を答えとして返してくる。 与える数とか条件とかを変えると、それに応じて結果を返して くるプログラムです。 具体的には、Jijyoという名前のjavaプログラムだとして >java Jijyo 157 とかコマンド(命令)を書けば、 24649 と答えが返ってくると素敵ですね。 この >java Jijyo 157 の 157 の文字。プログラムに値を渡しているこれ。これが引数です。 こういうコマンドで実行するプログラムのとき、上の 157 の値の ようにプログラムに渡してやる値。これが「コマンドライン引数」 ではないでしょうか。 プログラム実行時に渡した引数は、 #1さんのご説明のコードを拝借すると、String[] args というところ (これは、String型の配列argsを意味するのですが)ここにこの引数の値が入ってきます。 引数を利用するときは、続く処理でこのargsから、値を取り出して使います。 以上

fa_fa0321
質問者

お礼

分かりやすく教えて頂きありがとうございました。 やっと理解できるようになりました。

その他の回答 (1)

noname#18558
noname#18558
回答No.1

コマンドライン引数とは、アプリケーションの起動時に与える値のことです。 Javaなら、javaコマンド実行時に設定できます。 >java HelloJava 1 2 3 と実行すると、HelloJavaクラスのmainで受け取ることができます。 class HelloJava { public static void main(String[] args) { for(int i=0; i<args.length; i++) { System.out.println(args[i]); } } } コンソールには 1 2 3 と表示されます。 また、コマンドライン引数で数字を入力しても、Javaで受け取るの値はString型なので注意して下さい。

参考URL:
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000250.html
fa_fa0321
質問者

お礼

お早い回答ありがとうございました。 お蔭様でとてもよく分かりました。

関連するQ&A

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

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

  • コマンドライン引数

    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
  • コマンドライン引数って?

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

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

    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; } というプログラムを実行しても何も表示されません。 どうすればコマンドライン引数を利用できますか?

  • コマンドライン引数 *argv[]はなぜポインタ?

    C言語初心者です。 コマンドライン引数、 int main(int argc, char *argv[]) というのを最近勉強しましたが、引数2番目がポインタになっている理由について、 どなたか教えて下さい。 そういう仕様なんだから、それに従いましょう、ということでしょうか? int main(int argc, char argv[]) では、ダメなのでしょうか? このポインタでの引数渡しについて、 なんらかの納得のいく考え方をご存知の方がいらしたら、教えて下さい。 宜しくお願い致します。

  • コマンドライン引数の使い方

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

  • コマンドライン引数の疑問

    Java勉強中のひよっこです。コマンドライン引数の合計を 求めるプログラムを組んだのですが、整数にマイナス記号を付けた 計算は、ちゃんと実行されるのに、プラス記号だとエラーが発生します。これは、何故なのでしょう??どうすればプラス記号を付けても 実行できるのでしょうか?どなたかご教授お願い致します。

  • コマンドライン引数の例外処理について

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

    • ベストアンサー
    • Java
  • 「コマンドライン引数に実行ファイルを指定する」方法を教えてください。

    アプリを「常に手前に表示」にするために、Ace-Window を利用していますが、 ひとつの方法に  コマンドライン引数に実行ファイルを指定する事で、アプリを実行と同時に「常に手前に表示」にする事が出来ます。 と、明記してあります。 私には、どうすればよいのかわからないので説明をしてください。 コマンドライン引数(?)に実行ファイルを指定するとは 具体的にどうすればよいのでしょうか。

  • VC++でコマンドラインから引数を渡す方法

    さっきも違う質問でお世話になったものです。またわからないことがあったので、質問させてもらいます。 タイトルのとおりなんですが、現在Visual C++ 6でC言語の勉強をしてるんですが、コマンドラインから引数を渡すにはどうすればいいんでしょうか? main(int arfc,int *argv[]){ ・・・・ ・・・・} のようなプログラムなんですよ。 C言語もVC++の使い方をもよく分かってないので、詳しく教えてもらえるとうれしいです。 過去の質問も調べてみたんですが、似たような質問は見つかったんですが、わからなかったので、質問させてもらいました。 よろしくお願いします。

専門家に質問してみよう