カテゴリー
開発

Javaは環境作るのすら一苦労

久しぶりにJavaを触ってみました。

自分がプログラムの世界にはまる(?)きっかけとなったのは、Javaです。
Javaと、それをとりまく環境(思想的なモノも含めて)というのは、とにかく先進的で他の言語を使ってる人間からすると2,3歩先を行ってるような感じでした。
今までの開発のムーブメントはほとんどがJavaから始まっているような気がします。
当時、VBを使っていた初心者プログラマーの自分からすると、本質はよくわからないけど、とにかくすごい、という感じでした。
一時期は
、Javaの勉強のために、このサイトでもいろいろやってました

そんなわけで、Javaは割と思い入れのある言語なんですが、仕事では使うことが無かったので、ここ何年か完全にJavaの世界を離れていましたが、最近、機会があってJavaを調べてみることになりました。

で、まず思ったのが、「環境作るのめんどくせー」でした(笑)
というか、NetBeansという開発環境でWebサービスを作ろうとしたのですが、まともにコンパイルできる状態にすらならない(涙)
調べていたらJDK 6とJAXB2.1の組み合わせが悪いらしい。
どやらJDK6にJAXB2.0が含まれているので、古いバージョンが最初にクラスローダーから呼び出されてしまうので、Endorsed Directory Mechanismとかいう機能を使って2.1の方を呼ばないといけないらしいのだけど、それを設定しても利かなくて、何がなにやらという感じです。
.NETではこんなところで躓くなんてあり得ないんですけどね。

.NETなんてWebサービスのクライアントやサーバーが数分で作れてしまいますから。
.NETもRuby on Railsと一緒でオールインワンというのが強いですね。
アプリケーションサーバーを別途用意しなくてもIISがWebサービスのコンテナとして動いてくれますし、追加で特に何も入れなくても一通りのことはできるようになっています。
特に細かい設定ファイルもいじらずにサーバーにそのままコピーするだけで動いてしまうし。
組み合わせが限られているがために、問題も起きにくいでしすね。
その代わりマイクロソフトに相当、出資しないといけないですけど。

Javaの場合は、ランタイムのバージョンとか使うライブラリとかも考えておかないと、今回のようにまともに動いてくれないので、困ったもんです。
最近はしらないけど、Tomcatもバージョン変わると設定が様変わりしたりして、しんどかった。
このあたりのバージョンとかライブラリの組み合わせとかのノウハウがあると、.NETにくらべて相当安くあげられるんでしょうね。
このあたりも少しずつ積み上げていかないといけないのかなーと思うので、根気強くやっていこうかと思います。

しっかし、しばらくJava離れてたせいで、すっかり「浦島太郎」状態です。
ソースの中に「@WebMethod」とか出てくるから、何かと思ったら、アノテーションって言うんですね。
ヘルプを見た感じでは、.NETでいう属性(Attribute)のようなものかなと思いました(.NETでは[]で囲んであるやつですね)

ちょろっとさきほどふれたけど、Railsもなかなかおもしろいですね。
エンタープライズ向けじゃないっぽいですけど、DB周りのコードが極端に少なくなるのは、いいなーと思いました。
アジャイルな開発には向いてるかも。
あと、コードブロックをオブジェクトとして使えるというのは斬新。
C#でもジェネリックを駆使すると似たようなことは実現できると思うけど、よりわかりやすくていい感じでした。
Ruby自体をあまりわかってないので、あまり深くはつっこめてませんが。

しかし、基本的にLinux環境はめんどくさいですね。
ちょっと前までは、ちょっとぐらいうまくいかなくても、懲りずにいろいろやってたんですが、最近はというか.NETとかPHPとかオープンソースの出来合でもよくできたモノが出回り始めてからは、楽すぎて、そういう苦労がだんだん面倒に(笑)
MovableTypeが出てきたあたりから、一からなにかするのが面倒で(笑)

まぁ、苦労は無駄にならないし、今ぐらいしかこんないろいろ試せないと思うので、根気強くやってみます。

この記事を書いた人: A-tak

A-tak.com(えいたっく どっとこむ)の管理人。
Apple野郎なおっさんでしたが、ちょっと最近のAppleには飽き気味。
A-tak.comは2002年2月から運営(前身のサイトは1999年3月から)。今年で18年目!

Youtube / Twitter / Mastodon / Facebook