Java SDKは、「Java SE Downloads」から手に入れるとします。「Oracle Technology Network」のサイトから、「Java」→「Java SE」→「Downloads」とたどります。その後は、以下の手順でダウンロードしてください。
手に入れたファイルを、「/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コマンドと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
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プログラムを作成します。単に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"); } } }
コンパイルをしてから、次のように実行をします。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で稼働させるといった感じです。
メーラや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コレクションフレームワーク」(ソフトバンククリエイティブ)、そのほかに雑誌執筆多数。
Copyright © ITmedia, Inc. All Rights Reserved.