C言語のargc、argv と Javaのargsの違い

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をやるときに覚えおきましょう。

ubuntu に Eclipse をインストールする。

ubuntu 20.04 LTS にJavaとEclipseをインストールします。Eclipseは日本語化のプラグインも入れます。バージョンは以下です。

ubuntu 20.04 LTS
Java:OpenJDK 11
Eclipse:4.19 (2021-03)

EclipseはJavaのバージョンに依存するのでEclipseのサイトで確認しておきましょう。Eclipse 4.16 (2020-06)はJava8で動くようですが、4.17 (2020-09)からはJava11が必要です。

Javaのインストール

Javaをインストールします。OpenJDKのJava11のパッケージは「openjdk-11-jdk」です。Java8の場合は「openjdk-8-jdk」です。

Javaのインストール
$ sudo apt install openjdk-11-jdk

インストールが終わったらjavaのバージョンを確認します。

Javaのバージョンの確認
$ java -version

Eclipseのダウンロード

Eclipseはダウンロードサイトから取得します(2021年5月時点の最新は2021-03です)。オレンジ色のダウンロードボタンではなく Download Packages のリンクをクリックします(赤枠のところ)。

Eclipseのインストールはインストーラーを使ったインストールとパッケージを配置するインストールの2つがあります。インストーラー版をダウンロードするにはピンク枠、パッケージ版をダウンロードするには赤枠のリンクです。パッケージ版はいくつか種類があります。今回はパッケージ版の「Java EE IDE」をダウンロードします(赤枠のほうです)。

ダウンロード画面が表示されます。デフォルトだと中国のサーバーからダウンロードするようです。Select Another Mirror をクリックすると他のサーバーも表示されます。日本のサーバーからダウンロードします。

ダウンロードができたらダウンロードファイルのハッシュ値を確認します。ダウンロード画面にはもともとのファイルのハッシュ値があるのでそれと同じか確かめます。SHA-512を押下するとハッシュ値が表示されます。fb87・・と続く文字列がハッシュ値です。

ダウンロードしたファイルのハッシュ値を表示するには sha512sum コマンドを使います。

ハッシュ値の確認
$ sha512sum eclipse-jee-2021-03-R-linux-gtk-x86_64.tar.gz

ハッシュ値が同じであればダウンロードしたファイルが正しい(欠損がない)ことになります。

Eclipseのインストール

インストールといってもファイルを任意の場所に配置して展開するだけです。

Eclipseを解凍します。
$ gunzip eclipse-jee-2021-03-R-linux-gtk-x86_64.tar.gz

Eclipseを展開します。
$ tar xvf eclipse-jee-2021-03-R-linux-gtk-x86_64.tar

tarの展開が終わるとeclipseというフォルダができます。eclipseフォルダの中にあるeclipseのアイコンをダブルクリックします。

Eclipseが立ち上がります。起動したEclipseの画面です。英語になっているので日本語化のプラグインをあてます。

日本語化プラグインのインストール

日本語化のプラグインはPleiadesのサイトからダウンロードします。ダウンロードサイトにはEclipseと一緒になった Pleiades All in One のダウンロードと Pleiadesプラグイン単体のダウンロードの2つがあります。今回はPleiades単体のほうをダウンロードします。Linuxを選択します。

ダウンロードしたpleiades.zipを解凍します。pleiades.zipを選択して右クリック「アーカイブマネージャーで開く」を選択します。アーカイブマネージャーの画面が開きますので左上の「展開」ボタンを押下します。

展開する場所を指定して緑色の「展開」ボタンを押下します。

解凍すると features と plugins というフォルダがありますので、その配下にある jp.sourceforge.mergedoc.pleiades フォルダを、eclipseフォルダにある features と plugins フォルダにコピーします。

次に、eclipseフォルダにある eclipse.ini に以下を追記します。

-Xverify:none
-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

こんな感じです。赤枠が追記した部分です。

eclipseのアイコンをダブルクリックして立ち上げます。

日本語化ができました。