• ベストアンサー

(String args[])というメッソッドの意味

JAVAの初心者です、宜しくお願いします。 アプリケーションのプログラムで、Static Void (String args[])というメッソッドがありますがこれは一体何をさせるものですか。 また色々と本読んでいると、Static Void (String[] args)と配列を設定している場合もあります。 良く理解できません。ベーシックは理解できるのですが。宜しくお願いします。

  • htgo
  • お礼率33% (407/1224)
  • Java
  • 回答数4
  • ありがとう数10

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

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

まず最初に、お勧め過去ログです。 [mainメソッド(コンパイルは出来るが、実行不可。)] http://oshiete1.goo.ne.jp/kotaeru.php3?q=55027 [mainメソッド(クラスメソッドとしての利用。)] http://oshiete1.goo.ne.jp/kotaeru.php3?q=1876924 そこそこJavaの勉強をしてきて、上記じゃ物足りないなあという方向け [公式サイト] http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/java.html [Java言語規定の「12.実行」] http://www.y-adagio.com/public/standards/tr_javalang/12.doc.htm [Javaコマンドの基本] http://www.stackasterisk.jp/tech/java/javaCommand01_01.jsp あと、今だと都会の大型書店に行けば、日経ソフトウエアの2006年11月号がまだ山積みされていることと思います。ここの「特集4 Java開発者必見! 仮想マシンの仕組みを理解する」の所には、JVMが実際にどのように動いているのかとか、javapコマンドの簡単な使い方などが載っていますので、そちらの方も参考にしてください。 http://www15.nikkeibp.co.jp/software/backno/2006/0611indexc.html

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2>JVMから一番最初に呼び出されるメソッドとありますが ということですから #2>実際には、args[]の配列にはどのようなstringが渡されるのでしょうか。 でいうargs[] は、 public static void main(String[] args){ のargs ですね。 例えば、 class Args { public static void main(String[] args){ for(String str : args) System.out.println(str); } } 上記をコンパイルして、 java Args argA argB argC のように実行すると、 argA argB argC と表示されます。 つまり、 public static void main(String[] args){ のargs には、プログラムを起動するときに与えた(自プログラム以降の)コマンドライン文字列が文字列の配列として、 プログラムの最初に実行されるメソッドmain に渡されるということになります。 #2>そもそもJAVAはシステムからどのようにロードされるのでしょうか。 (windows でいうjava.exe がシステムにどのようにロードされるのかというような意味合いであれば)それは、OSによって異なる部分なので、JAVAの使用者としては別段気にすることはないと思います。 (ホントにそんなことを知りたいのかどうか、私の勘違いかも知れませんが、いわゆるアプリケーションプログラムは、シェルなどによって起動が促されて、OSによってメモリ上に読み込まれてメモリ上で実行できるような変換処理などを経てOSの配下でCPUを与えられてそのCPUで実行されます。まあ、概略こんな感じです。java(.exe) も同じだと思います)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

何をさせるものかは、わかりませんが、 メソッドの引数に String args[] とあれば、文字列の配列をそのメソッドに渡しているということを表します。 String[] args は、同じ意味です。 どちらかというと、String[] args が本式で、String args[] は、便法だったと思います。

htgo
質問者

補足

実際には、args[]の配列にはどのようなstringが渡されるのでしょうか。 JVMから一番最初に呼び出されるメソッドとありますが 、そもそもJAVAはシステムからどのようにロードされるのでしょうか。

回答No.1

public static void main(String args[])じゃありませんか? これはJava(スタンドアロンプログラム)を起動する際、 JVMから一番最初に呼び出されるメソッドです。 一番最初に呼び出したいクラスにそれがないと動かない、という事です。 また、配列宣言の[]は、型の後でも変数名の後でも使えるだけで、 違いはありません。

関連するQ&A

  • argsってなんなのでしょう?

    public static void main (String[] args) と用いられていたりするこのargsとは、 結局どういうもので、 どういうふうに使えばいいのかなど、 よくわかりません。 配列であるらしいのですが・・・ 入力ストリーム関連で教えていただけないでしょうか?

  • public static void main(String args

    public static void main(String args[]) { と public static void main(String[] args) { は何が違います?

    • ベストアンサー
    • Java
  • javaのmainの引数はなぜstring[]?

    Java初心者です。 基礎的なことなのですが、質問させてください。 javaのmainメソッド定義の public static void main (String[] args) について、String[] argsの部分がjavaコマンドで実行する際に与える引数であることは 理解できました。しかし、なぜStringの配列なのかが理解できません。 実行時の引数であれば、intやdoubleも使い道があるようにも感じるので、 プログラマの好きに定義できた方が便利な気がしますし、実行時に引数を与えないなら public static void main () としてしまったほうがわかりやすいとも感じてしまいます。 実はコンパイル時や実行時に裏の見えない部分でStringの配列を使っているとか、 何か理由があるのでしょうか? mainの定義は main (String[] args)と暗記でもいいのですが、 気になったので知りたく、質問させてください。

    • ベストアンサー
    • Java
  • 『args[]』とは?

    ご質問させて頂きます。 public static void main(String args[]){ の 『args[]』はどのような意味なんですか? ご教授して頂けたら幸いです。

    • ベストアンサー
    • Java
  • public static void main (String args[])

    基本すぎて申し訳ありませんが、 public static void main (String args[])とはどういう意味を持っていますか? 教えてください。。

    • ベストアンサー
    • Java
  • Javaの文法

    Javaプログラミングの勉強をはじめたばかりですが、本を見てもいまいちよくわかりません。多分、わからないのはpublic sta…の部分を理解できていないからだと思います。public static void main(String args[])の意味がよくわかりません。public staticはどういう意味なんでしょうか?それとString args[]の部分がなぜ必要なのかがよくわかりません。どなたか教えてください。

    • ベストアンサー
    • Java
  • java 実行できない

    javaで public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } のようなプログラムをかいて、コンパイルして、実行しようとすると エラー: メイン・メソッドがクラスStringで見つかりません。次のようにメイン・メソッドを定義してください。 public static void main(String[] args) またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要がありま というエラーがでます。コンパイルはできます。jdkは1.8.0_25を使っています。

  • args[ ] について

    次の問題についての質問です。 問題: (1)実行時に引数をつけて実行 (2)「引数と同じ値を入力してください」と表示、標準出力を行う。 (3)標準入力された値が、実行時の引数と同じ値だった場合は「正解」と表示 (4)標準入力された値が、実行時の引数と違う値だった場合は「はずれ」と表示 出力結果: C:\>java Hantei test 引数と同じ値を入力して下さい。 test 正解 C:\>java Hantei test 引数と同じ値を入力して下さい。 abc はずれ C:\> 解答例: import java.io.*; class Hantei { public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("引数と同じ値を入力してください。"); String str = br.readLine(); if(str.equals(args[0])){ System.out.println("正解"); } else{ System.out.println("はずれ"); } } } ************************************************************* この解答例の中の str.equals(args[0]) の部分の意味が分からないので(特にargs[0]が)、 解説していただけたらと思います。 参考書やネットで検索してみたのですが、あまり 載っていなかったので・・・ あと、解答通りに入力したはずなのに ArrayIndexOutOfBoundsExceptionのエラーが出てしまうのは 何故なんでしょう?ちなみにエラーの意味は分かります。 配列要素数を5とかに増やして実行してみたのですが、 それでもダメでした。

    • ベストアンサー
    • Java
  • JavaでString型をChar型に変換するプログラムが分かりません

    JavaでString型をChar型に変換するプログラムが分かりません;; どなかた助けて下さい。 下のプログラムの何がいけないんでしょうか?? いろいろ間違ってるところはあると思うんですが、教えて下さい! import java.io.*; class { public static void main(String args[]) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); StringBuffer moji = new StringBuffer(str1); char nyuu=moji;

  • args[0]でエラー

    ご質問させて頂きます。 以下のコードは、javaでLOOKUPのような昨日のコードを 以前こちらでサンプルとして作成して頂いたものなんですが、 エラーの方がどうしても取れなくて困っています。 String[] value = testMap.getValue(args[0]); の行でエラーになってしまうのですが args[0]の部分を取ると、コンパイルエラーは取れますが 今度は実行エラーになってしまいます。 args[0]が鍵だと思うのですが どのようにすればいいか分かりません。 ご教授して頂けたら幸いです。 --------------------------------- import java.util.*; public class TestMap { /*HashMap生成(クラス変数)*/ private HashMap hashMap = new HashMap(); /*追加:入力キー(クラス変数)*/ private String inputKey = null; ・ ・ ・ ・ public static void main(String args[]){ TestMap testMap = new TestMap(); testMap.setMap(); /*Keyに対応する出力の判断*/ if(testMap.checkKey(args[0])){ ↓↓↓ここでエラー String[] value = testMap.getValue(args[0]); System.out.println("日付:" + value[0] + " 名前:" + value[1]); } else{ System.out.println("対応するKeyが存在しません。"); } } public TestMap() { } ・ ・ ・ ・ /*KeyからValueを返す*/ public String[] getValue(){ String[] value = (String[])hashMap.get(inputKey); return value; } }

    • ベストアンサー
    • Java

専門家に質問してみよう