小山博史のJavaを楽しむ(14)UNIX/Linuxも楽しむ
Java開発者になるための学習法
株式会社ガリレオ
小山博史
2010/8/10
□ JDK 6 Update 21をCentOSにインストール
Java SDKは、「Java SE Downloads」から手に入れるとします。「Oracle Technology Network」のサイトから、「Java」→「Java SE」→「Downloads」とたどります。その後は、以下の手順でダウンロードしてください。
- 「JDK 6 Update 21 (JDK or JRE)」の「Download JDK」をクリック
- 「Download Java SE Development Kit 6u21」をクリック
- 「Platform」で「Linux」を選択し、「Continue」をクリック
- 「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」という文字列が表示されます。
JshRunner.javapublic 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で稼働させるといった感じです。
![]() |
| 図5 筆者の仮想マシン例3(CentOSとVirtualBox) |
メーラやWebブラウザはどちらの環境でも同じものを使いたかったので、何度か試行錯誤して、1台で両方使える環境を用意できないかやってみましたが、設定などで苦労した割には満足のいく環境にはなりませんでした。なんだかんだいって、2台を並べて使うのが、総合的にみると一番効率が良かったのでした。結局、WindowsデスクトップマシンとLinuxデスクトップマシンの2台をメインマシンとして使用することになりました。
こういった筆者の経験からすると「仕事ですぐに使えるようにならないといけない」という場合はのんびりとはできませんが、そうでなければ、日ごろからUNIX系OSを使える環境を用意しておいて、「UNIX系OSを使った方が楽なのではないかな」と、ちょっと思い立ったときに使うようにすれば、自然といろいろなことが身に付くようになりますし、楽しくスキルアップができるはずです。
ぜひ、皆さんもトライして、JavaにもLinuxにも強い開発者を目指してみてください。
□ @IT関連リンク
| AndroidエミュレータでLinuxカーネルをデバッグ!! 作りながら理解するファイルシステムの仕組み(6) Linuxカーネルにtarfsを組み込むための手順を解説。今回はAndroidを題材に開発環境構築、デバッグ方法を紹介する |
||
| 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 |
| INDEX | ||
| 第14回 UNIX/Linuxも楽しむJava開発者になるための学習法 | ||
| Page1 なぜUNIX系OSの知識が必要なのか? AndroidもLinux 無料で簡単にUNIX/Linuxを学習できる環境を作るには |
||
| Page2 あなたは何派? 3パターンから選んで使ってみよう JavaプログラムからLinuxプログラムを実行するには |
||
| Page3 ちょっと思い立ったときに使えるように |
||
小山博史のJavaを楽しむ バックナンバー 連載インデックスへ»
- 第1回 JavaとJavaScriptの親しい関係
- 第2回 いろいろなJavaを楽しむ
- 第3回 待望のJava SE 6 でパーシステンス
- 第4回 (Java+Derby)* Ruby on Rails プログラミング
- 第5回 【新人研修向け特別企画】JavaでPHPを使ってみた
- 第6回 JavaFXでJava RIA開発はどれくらい変わるの?
- 第7回 そろそろブログ+RSSアプリでも作ってみませんか?
- 第8回 デスクトップをJava製ウィジェットでにぎやかに
- 第9回 Google Android用携帯アプリ作成のための基礎知識
- 第10回 【新人なるプログラマーへ】ソースコードを読みましょう
- 第11回 Javaはクラウドのプラットフォームになり得るのか
- 第12回 「Javaは遅い」から「Javaは楽しい」に至る歴史
- 第13回 Subversionならできる! NetBook最強バックアップ術
- 第14回 UNIX/Linuxも楽しむJava開発者になるための学習法
- 第15回 年末でJetty(絶対)にできるAndroid携帯サーバ活用
| ご意見、ご感想はJava Solution 会議室へどうぞ |
| Java Solutionコラム一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



