C言語ではmain関数の引数にargcとargvを使います。
C言語
int main( int argc, char *argv[] ) ・・
Javaではmainメソッドの引数にはargsを使います。
Java
public static void main( String[] args ) ・・
プログラムに与えたパラメータをこれらのargvやargsを使って取得できるのですが、argvやargsに入る配列の中身はC言語とJavaでは異なります。C言語の場合は1つ目の引数を取得するにはargv[1]となりますが、Javaの場合はargs[0]となります。
また引数の個数を取得する場合もC言語の場合はargcを使いますが、Javaの場合はargs.lengthを使います。
sample1というプログラムがあり、パラメータに aa と bb を与えたとします。
実行例(C言語)
$ sample1 aa bb
実行例(java)
$ java sample1 aa bb
C言語ではaaを取得するにはargv[1]、bbを取得するにはargv[2]となります。なお、argv[0]ではプログラム名(sample1)が取得できます。Javaではaaを取得するにはargs[0]、bbを取得するにはargs[1]となります。
まとめるとこんな感じです。
実際にサンプルプログラムを作ってmain関数(mainメソッド)の引数をたどってみました。
C言語のサンプルプログラム(sample1.c)です。
#include <stdio.h>
int main( int argc, char *argv[] )
{
int i;
for( i = 0; i < argc; i++ )
printf( "%s\n", argv[i] );
return 0;
}
実行結果は以下となります。
$ gcc sample1.c -o sample1
$ sample1 aa bb
sample1
aa
bb
Javaのサンプルプログラム(sample1.java)です。
public class sample1
{
public static void main( String[] args )
{
int i;
for( i = 0; i < args.length; i++ )
System.out.println( args[i] );
}
}
実行結果は以下となります。
$ javac sample1.java
$ java sample1 aa bb
aa
bb
C言語のプログラマはJavaをやるときに覚えおきましょう。