?」という疑問も抱かずに、その目的を全く理解していませんでした。IT業界は特に激務で、勉強している時間も取れませんから、取り敢えず開発可能な状態にすることが先決で、いつの間にか有耶無耶になっていた、なんて方も少なくないかもしれません。ここでは改めて、Eclipseの設定「インストール済みのJRE」を「JDK」に変更する「理由」「目的」について、確認してみたいと思います。素朴な疑問まず、初心者が素朴に疑問に思っていることは、以下のようなことです。・Eclipseには独自のJavaコンパイラ「ECJ」が搭載されているんだから、敢えて「JDK」は不要ではないのか?・Tomcat5.5以降のバージョンでは「JRE」に変更しなくても「JSP」のコンパイルが可能なんだし、実際、「JRE」のままでも開発に支障がないTomcat5.5以降の開発環境でJavaの開発を行っていれば、こういった疑問を抱いていてもおかしくはないかもしれません。JREのままだと、どうなるのか?「JREのままだと、どうなるのか?」、思いつくだけ列挙してみます。・標準提供されたJavaライブラリ内をソースレベルでデバッグできない・Tomcat5.5以前のバージョンを使うことになった場合に、「JSP」がコンパイルできなくなる・各種プラグイン、フレームワークを使用する場合、「JDK」が必須である場合がある・「ECJ」は「JDK」そのものではない為、コンパイル結果が異なる可能性があるこんなところでしょうか。Javaライブラリのデバッグ開発していれば「デバッグ」は必ず行うことです。頻繁にあることではないかもしれませんが、どうしてもJavaが標準提供しているライブラリ内をソースレベルでデバッグしたいというケースもあるかもしれません。「Javaが標準提供しているライブラリ」とは何かと言えば、例えば「String」クラスなどです。Eclipse上のソースで、Javaのクラス「String」にカーソルを置き、キーボードの「F3」を押下したとします(「F3」は「宣言の参照」です)。「JRE」のままだと、「ソースが見つかりませんでした」と表示されますが、「JDK」に変更していれば、「String」クラスのソースが表示されるようになります。「JRE」にも「ECJ」にもJavaのソースは含まれていない為、「ソースが見つかりませんでした」と表示されます。ソースが見たければ、「JDK」を設定する必要があります。ソースなど必要ない!デバッグしない!と言ってしまえば、それまでです。Tomcat5.5以降でしか開発しない?Tomcat5.5以降を開発環境に用いていれば、「JRE」のままでも「JSP」のコンパイルはできるわけですが、今後も開発は、Tomcat5.5以降でしか行わないのか、というところに問題があると言えます。PC上の開発環境はTomcat5.5以降かもしれませんが、実はサーバー上はTomcat5.5以前の状態という可能性もあります。Tomcatのバージョンごとに「JDK」を設定する/設定しないを切り替えるくらいなら、始めから「JDK」を設定しておく方が間違いは無くなるでしょうし、無用な混乱を招き兼ねません。サーブレットコンテナはTomcatだけではなく、サーブレットコンテナを持っているフレームワークなどもありますから、同じく、初めから「JDK」を設定しておく方がどんな環境にも適応できて、間違いは無くなるでしょう。Tomcat5.5以降しか用いず、その他のプラグインもフレームワークも絶対に使わない!と言ってしまえば、それまでです。ECJはJDKではない本件は、これが一番の問題ではないでしょうか。「ECJ」はJava準拠ではあるものの、「JDK」のコンパイラそのものではありません。ほとんどの場合、「JDK」でコンパイルされたアプリケーションの結果を暗黙的に想定しているはずです。こんなこと言いもしないでしょう。仮に、「ECJ」と「JDK」で生成したアプリケーションに重大な動作の違いが生じてしまったら、そのことに気がつくことは至難の技でしょう。これが特に仕事として納品するようなものなら大問題で、変な拘り、もしくは無知で、「ECJ」のコンパイルで済ますようなことは絶対に避けなければなりません。趣味で遊んでいるだけだし公開したりもしないから別にいいんだ!と言ってしまえばそれまでですが、そういった趣味的な状況の時から正しい認識で開発術を身につけておくことが、何よりも大切なことだと思います。「Eclipse」はデフォルトでは「JRE」を参照するように設定されています。「JDK」を参照するように設定を変更する方法は、以下で解説しています。ついて幼い頃の自分の髪型が、まるで森下裕美の漫画『少年アシベ』の芦屋アシベのようだったので、それを名前の由来にした。コメントをキャンセルメールアドレスが公開されることはありません。キャンセル投稿を送信できませんでした。メールアドレスを確認してください。メール送信チェックに失敗しました。このブログではメールでの投稿共有はできません。