- ベストアンサー
(String args[])というメッソッドの意味
- みんなの回答 (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)
#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)
何をさせるものかは、わかりませんが、 メソッドの引数に String args[] とあれば、文字列の配列をそのメソッドに渡しているということを表します。 String[] args は、同じ意味です。 どちらかというと、String[] args が本式で、String args[] は、便法だったと思います。
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
public static void main(String args[])じゃありませんか? これはJava(スタンドアロンプログラム)を起動する際、 JVMから一番最初に呼び出されるメソッドです。 一番最初に呼び出したいクラスにそれがないと動かない、という事です。 また、配列宣言の[]は、型の後でも変数名の後でも使えるだけで、 違いはありません。
関連するQ&A
- argsってなんなのでしょう?
public static void main (String[] args) と用いられていたりするこのargsとは、 結局どういうもので、 どういうふうに使えばいいのかなど、 よくわかりません。 配列であるらしいのですが・・・ 入力ストリーム関連で教えていただけないでしょうか?
- 締切済み
- Java
- 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 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を使っています。
- 締切済み
- Java
- 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;
- 締切済み
- Java
- 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
補足
実際には、args[]の配列にはどのようなstringが渡されるのでしょうか。 JVMから一番最初に呼び出されるメソッドとありますが 、そもそもJAVAはシステムからどのようにロードされるのでしょうか。