連載
» 2010年08月10日 00時00分 公開

UNIX/Linuxも楽しむ Java開発者になるための学習法小山博史のJavaを楽しむ(14)(3/3 ページ)

[小山博史,株式会社ガリレオ]
前のページへ 1|2|3       

JDK 6 Update 21をCentOSにインストール

 Java SDKは、「Java SE Downloads」から手に入れるとします。「Oracle Technology Network」のサイトから、「Java」→「Java SE」→「Downloads」とたどります。その後は、以下の手順でダウンロードしてください。

  1. 「JDK 6 Update 21 (JDK or JRE)」の「Download JDK」をクリック
  2. 「Download Java SE Development Kit 6u21」をクリック
  3. 「Platform」で「Linux」を選択し、「Continue」をクリック
  4. 「jdk-6u21-linux-i586.bin」をダウンロード

 手に入れたファイルを、「/home/user1/download/jdk-6u21-linux-i586.bin」においたとします。suコマンドでrootになって、次のようにインストールをします。「Press Enter to continue.....」と表示されたら[Enter]キーを押します。インストールができたら、シンボリックリンクを作っておきます。

$ su -
$ mkdir /usr/java
$ cd /usr/java
$ sh /home/user1/download/jdk-6u21-linux-i586.bin
:
【略】
:
Press Enter to continue.....
 
# sudo ln -s jdk1.6.0_21 default
# ls -al
合計 12
drwxr-xr-x  4 root root 4096 2010-08-01 18:24 .
drwxr-xr-x 14 root root 4096 2010-08-01 18:20 ..
lrwxrwxrwx  1 root root   11 2010-08-01 18:24 default -> jdk1.6.0_21
drwxr-xr-x 10 root root 4096 2010-08-01 18:23 jdk1.6.0_21

Javaの動作確認

 動作確認は次のようにします。javaコマンドとjavacコマンドが使えることを確認しておきましょう。

# /usr/java/default/bin/java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)
 
# /usr/java/default/bin/javac -version
javac 1.6.0_21

複数のJava開発環境を使える

 LinuxなどのUNIX系OSでは複数のJava開発環境を簡単に用意できます。例えば、「Java SE SDK 1.6.0 Update21」と「Java SE 1.4.2 Update18」を、それぞれ「/usr/java」の「jdk1.6.0_21」と「j2sdk1.4.2_18」にインストールしておいて、利用時に切り替えができます。

 先ほど作成したシンボリックリンク「/usr/java/default」をJava SE 1.4.2 Update18の方へ作成し直せば、「/usr/java/default/bin/java」を使っている利用者は、自動的に切り替えとなり、Java SE 1.4.2 Update18 の方を使うようになります。

# /usr/java/jdk1.6.0_21/bin/java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)
 
# /usr/java/j2sdk1.4.2_18/bin/java -version
java version "1.4.2_18"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_18-b06)
Java HotSpot(TM) Client VM (build 1.4.2_18-b06, mixed mode)

シェルスクリプトを用意

 ホームディレクトリ(ログインした直後のディレクトリ)で、次のようなサンプルシェルスクリプトを作成します。「ls -1」というコマンドを実行して、その結果を「a.txt」へ書き込んでいます。

#!/bin/sh
ls -1 > a.txt

 chmodでファイルを実行可能にしておきます。

$ chmod 755 sample.sh

Javaプログラムを作成

 Javaプログラムを作成します。単にProcessクラスやRuntimeクラスを使って、シェルプログラムを呼び出しているだけです。シェルスクリプトがきちんと実行されると、「OK」という文字列が表示されます。

public class JshRunner {
    public static void main(String[] args) {
        Process process;
        try {
            process = Runtime.getRuntime().exec(args);
            int e = process.waitFor();
            if (e == 0) {
                System.out.println("OK");
            }
        } catch (Exception e) {
            System.out.println("Exception");
        }
    }
}
JshRunner.java

実行結果

 コンパイルをしてから、次のように実行をします。a.txtというファイルが出来るので、catコマンドで内容を確認します。

$ /usr/java/default/bin/javac JshRunner.java
$ /usr/java/default/bin/java JshRunner ./sample.sh
OK
$ cat a.txt 
JshRunner.class
JshRunner.java
a.txt
sample.sh

 sample.sh内で実行している「ls -1」というコマンドを別途実行すると、その結果が「a.txt」と同じになっていることが分かります。先ほどのJshRunnerクラスがsample.shのシェルプログラムを実行したのです。

$ ls -1
JshRunner.class
JshRunner.java
a.txt
sample.sh

ちょっと思い立ったときに使えるように

 ちなみに、筆者が本格的にコンピュータを使い始めたのは大学4年生のときで、最初からUNIX系OSを使っていました。そのときはX Window Systemがすでにあり、そこでEmacsを起動して使っていました。

 会社に入ってから、最初はUNIX系OSを使っていましたが、パソコンのソフトウェアを開発することになったので、WindowsとMS-DOSを使うようになりました。パソコンを使うようになったのが後だったのです。そのため、EmacsエディタやUNIX系OSで簡単にできていたことがパソコンではできないことにストレスを感じつつ、Windowsマシンを使っていました。

 あるとき、「BSD on Windows」というWindows上でUNIX系OSのコマンドを使えるソフトウェアがあるのを知ったときは、それを使ってみたりしました。便利だったのですが、Windowsと共存させるために妥協しないといけない点があったり、機能が制限されていたりしたので、次第に使わなくなってしまいました。

 その後、複数のコンピュータを使える環境の職場になったので、WindowsマシンとUNIX系OSのマシンを両方用意して、それぞれ得意な分野に応じて使い分けるようになりました。Officeなどの商用製品や、そのファイルはWindowsで扱い、Apache HTTP ServerやMySQLなどのサーバソフトウェアはLinuxで稼働させるといった感じです。

図5 筆者の仮想マシン例3(CentOSとVirtualBox) 図5 筆者の仮想マシン例3(CentOSとVirtualBox)

 メーラやWebブラウザはどちらの環境でも同じものを使いたかったので、何度か試行錯誤して、1台で両方使える環境を用意できないかやってみましたが、設定などで苦労した割には満足のいく環境にはなりませんでした。なんだかんだいって、2台を並べて使うのが、総合的にみると一番効率が良かったのでした。結局、WindowsデスクトップマシンとLinuxデスクトップマシンの2台をメインマシンとして使用することになりました。

 こういった筆者の経験からすると「仕事ですぐに使えるようにならないといけない」という場合はのんびりとはできませんが、そうでなければ、日ごろからUNIX系OSを使える環境を用意しておいて、「UNIX系OSを使った方が楽なのではないかな」と、ちょっと思い立ったときに使うようにすれば、自然といろいろなことが身に付くようになりますし、楽しくスキルアップができるはずです。

 ぜひ、皆さんもトライして、JavaにもLinuxにも強い開発者を目指してみてください。

@IT関連リンク

AndroidエミュレータでLinuxカーネルをデバッグ!!
作りながら理解するファイルシステムの仕組み(6) Linuxカーネルにtarfsを組み込むための手順を解説。今回はAndroidを題材に開発環境構築、デバッグ方法を紹介する
MONOist > 組み込み開発 2010/8/3

Java EE 6/Tomcat 7/Gitに対応したEclipse 3.6
ユカイ、ツーカイ、カイハツ環境!(15) 先日公開されたHeliosの主な変更点や、Windows 64ビット版/デスクトップLinuxへの対応、日本語化、次世代版の「e4」を紹介します
Java Solution」フォーラム 2010/6/25

Windowsユーザーに教えるLinuxの常識
Windowsのセオリーが通用しないLinux。Linux初心者向けに、LinuxというOSの考え方/常識をゼロから伝授!
Linux Square」フォーラム

筆者プロフィール

小山博史(こやま ひろし)

情報家電、コンピュータと教育の研究に従事する傍ら、オープンソースソフトウェア、Java技術の普及のための活動を行っている。長野県の地域コミュニティである、SSS(G)bugs(J)の活動へも参加している。

著書に「基礎Java」(インプレス)、共著に「Javaコレクションフレームワーク」(ソフトバンククリエイティブ)、そのほかに雑誌執筆多数。



前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。