• 締切済み

Eclipseに「JDK」を設定する理由が不明です

Eclipseの設定「インストール済みのJRE」に「JDK」を設定する理由が分かりません。 WEBや書籍では、「JRE」から「JDK」に変更しなければならないと非常に多くの記載が見受けられるのですが、理由がよく分かりません。 「JRE8」を設定しているのですが、Tomcat8ならJSPをコンパイルできますし、何も困ることはないのでは? と思っています。 実際、開発で困ることは何があるのでしょうか? 現状、何も困っていません。 Eclipseには独自のJavaコンパイラが搭載されていますので、JavaのコンパイルにJDKは不要です。 昔はTomcatでJSPがコンパイルできないからということで注意書きが多かったですが、未だにそういうことを書いてあるWEBや書籍があります。今のTomcatならJREのままでも問題ないので、結局、何の為にJDKに設定し直しているのか分からないWEBや書籍ばかりです。 実は不要なのでは? という疑問が湧きます。

  • Java
  • 回答数3
  • ありがとう数3

みんなの回答

noname#247307
noname#247307
回答No.3

> 未だにそういうことを書いてあるWEBや書籍があります。 そうした説明をしているのは、たいてい入門書の類ではないでしょうか。ビギナーには、なるべく問題を起こしにくい環境を提示すべきです。何か問題が発生したとき、その原因を特定しやすくするためです。JDKではなくJREを指定したがためにうまくいかないことがあるとビギナーは困りますから。 >実際、開発で困ることは何があるのでしょうか? 既にあがっていますが、デバッグ時の問題。またEclipseではJavaDocの説明をポップアップする補完機能がありますが、これはJREでは使えません(ソースがないため)。JDKを設定する必要があります。 また「Tomcat8ならJREでもいい」ということは、逆にいえばTomcat8でない環境の場合はJREでは困ることになります。Webアプリケーションは最終的にサーバーにデプロイして動かしますから、サーバー側がTomcat7のままの場合、開発環境もTomcat7で開発するでしょう。 また、Tomcat以外のサーバーを使う場合も多々あります。例えば、最近はWebアプリケーション開発にフレームワークを利用するケースが増えていますが、Play FrameworkやSpring Bootを利用する場合、これらは外部サーバーを使用しません。フレームワーク内にサーブレットコンテナをもっており、それをアプリケーションとして起動して動きます。こうしたフレームワークを使用している場合、JDKを使って起動しないとトラブルに見舞われるでしょう。 更には、フレームワーク利用のプロジェクトでは、ビルドツールとしてMavenを利用することが多いと思います。MavenはJREでは動きません。JDKが必要です。 この他にも、JREでは動かずJDKが必要となるプラグインやフレームワークはけっこうあります。単純に「Tomcat8でJSP/サーブレットだけで開発する」というなら別ですが、Web開発においては幅広いフレームワークを利用することが多く、そんなシンプルな開発ケースのほうが少数派でしょう。さまざまなフレームワークやプラグインの利用を考えたら、最初からJDKを設定しておいたほうが安全確実です。

ultra_haha_hair
質問者

お礼

こんなにも分かりやすく解説くださった方は初めてでした。 本当に、ありがとうございました。 すごく参考になりましたし、納得できました。 こちらで質問して、本当に良かったです。

  • KSOH
  • ベストアンサー率93% (29/31)
回答No.2

JDKを設定する利点は標準提供ライブラリ内がソースレベルでデバッグ可能になることだと思います。これは必ずしも必要ではないでしょうが、ライブラリの中の動作を確認したいというときには便利です。 個人的には自分がよく仕組みを理解できてなかったり、仕様を勘違いしていたりという場合に、デバッガでライブラリの中の動きを観察することで問題を解決するということがままあります。

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.1

あまり詳しくはありませんが、breakpoint設定、step実行などのデバッグ時にアプリケーション側のみで対応出来るのであればJREのままでも良いのだと思われます。 しかしruntime package内やOSインターフェイス等も調べていく必要が出てきた場合などでは、JDKの中のjava runtime source等も含めてステップ実行、subroutine parameterの確認等が必要になりそうです。 JREだけではこれらも含めての詳細デバッグ等に対応出来ないので、JDKもインストールしておく必要があるのだと思われます。

関連するQ&A

  • EclipseでJavaコンパイラのバージョンを上げるには?

    Eclipse2.1を使用しています。 設定画面の[Java]→[コンパイラー]→[コンパイラー準拠レベル]に5.0の選択肢がありません。 コンパイラのバージョンを上げるにはどうすればよいのでしょうか? ※jdk1.5.0_05を配置し、環境変数を通しています。 ※[Java]→[インストール済み JRE]にはjdk1.5.0_05を追加しチェックを付けています。

    • ベストアンサー
    • Java
  • EclipseでJSPのコンパイルエラー

    過去に開発したWebアプリをEclipseを使用して再開発し直してみようと挑戦中ですが、以下のエラーが解決できず困っています。 ***** org.apache.jasper.JasperException: JSPのクラスをコンパイルできません JSPファイル: null の中の行: -1でエラーが発生しました 生成されたサーブレットのエラーです: [javac] Compiling 1 source file E:\AddProgram\Eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Standalone\localhost\XXX\login_jsp.java:10: java.lang.Object にアクセスできません。 クラスファイル E:\AddProgram\Eclipse\eclipse\jre\lib\rt.jar(java/lang/Object.class) は不正です。 クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 public class login_jsp extends HttpJspBase { ^ エラー 1 個 ***** Javaビルドパス-クラスパス変数は j2sdk1.4.2\jre\lib\rt.jarになっているし、 Javaコンパイラーの準拠レベルは1.4になっているし、 JAVA_HOMEやPATHもj2sdk1.4.2、j2sdk1.4.2\binになっているんですが、何故別のjarを参照してしまっているのでしょうか? Eclipseの再起動、JRE1.4.2の再インストールなども試みましたが、解決せず悩んでいます。解決方法をご存知の方、ご教授ください。 ■環境(最終的に落ち着いた使用バージョンは以下の通り。) ・EclipsePleiadesAllinOneJava3_4_2 ・java 1.4.2 ・Tomcat 4.1.31 ・Apache 2.0.53 ・MySQL 4.0.25

    • ベストアンサー
    • Java
  • Java開発環境について

     開発環境について全体を捕らえてどうかという視点での質問です。全くの初心者ですのですっとんきょうかもしてれませんがご回答願います。  Webでシステム開発をするとするとHTMLとJavaがコアになる付随してJavascriptが必要になる。この時、JDK、Eclipse、Tomcatを使うとするとJDKはJava並びに必要なモジュールを提供するもの、EclipseはJavaをコンパイル・テストするための環境、TomcatはJspを管理するためのツールのように思われますがこの理解は正しいでしょうか 各部分の専門用語の前に全体の関係を知りたいのです宜しくお願い致します。

    • ベストアンサー
    • Java
  • eclipseの設定のJREとコンパイラの違い

    eclipseの設定で、インストール済みのJREとコンパイラの違いについて教えて いただけないでしょうか。 自分で調べてみた限りでは、、、 インストール済みのJREは、Javaプログラムの実行、デバッグに使用される。 コンパイラは、Javaプログラムのコンパイルに使用される。コンパイラ自体はeclipse 内部のものを使用しており、コンパイラ準拠レベルを指定することにより、指定した Javaのバージョンでコンパイルを行うことが可能。 上記の仕様だと、例えばインストール済みのJREのバージョンを1.6、コンパイラ準拠レベル に1.4を指定したとします。こうした場合、 String s = "hoge"; if(s.isEmpty()) { ・・・・ というコードはコンパイルエラーになるはずです。(String#isEmpty()は1.6から導入) コンパイルエラー⇒クラスができない⇒実行できない、という流れを想定していたの ですが、実際は、エディタ上でエラーになっておらず、コンパイルもでき、実行もできました。 インストール済みのJRE、コンパイラともに1.4を指定すると、エディタ上でエラーに なっていたし、コンパイルも行われていませんでした。 コンパイラ準拠レベルとはいったい???という状態です。 どこかに詳しく説明されているサイトなども教えて頂けるとうれしいです。 宜しくお願いします。 OS:Windows7 HomePremium eclipse:eclipse-jee-indigo-SR1-win32-x86_64.zip

    • ベストアンサー
    • Java
  • Tomcatプラグインがeclipseに反映されない

    Tomcatプラグインを参考書等のやり方にしたがってeclipseのpluginフォルダに放り込んだのですが、eclipse>ウィンドウ>設定のダイアログ上に反映されません。eclipseとpluginのバージョンが2のときはふつうに表示されていたのですが、バージョンをあげてからうまく反映されません。  eclipse  3.0.1 プラグイン com.sysdeo.eclipse.tomcat_3.0.0 JAVA_HOME C:\Program Files\Java\jdk1.5.0  eclipseの「JREの実行環境」     C:\Program Files\Java\jre1.5.0  Tomcat バージョン 4.06 有名なWikiのエクリプスページを見ても、該当するパターンがなく解決できません。 いまいち仕組みがわからず、こういうときに何が問題なのか、ということがわからないのが現状です。みなさんのアドバイスお待ちしています。よろしくお願いします。

    • ベストアンサー
    • Java
  • eclipseについて

    JDKをデフォルトjavaで設定したいのですが、 JREホーム:C:\Program Files\Java\jdk1.7.0_09 JRE名:jdk1.7.0_07 にすると、「JRE 名はすでに使用されています」と表示され、設定が上手くいきません。 このような場合、JRE名は変更しても問題ないのでしょうか? 当方、全くの初心者のため、不安に思い投稿しました。 ちなみに、eclipseの保存場所は外付けHDです。 どなたかご存知の方がいらっしゃったら教えていただけませんでしょうか。

    • ベストアンサー
    • Java
  • Eclipse 3.1.2で Java1.5の新機能の可変引数のString#formatを使用するには?

    Eclipse 3.1.2環境でJavaのプログラミングをしていますが、Java1.5の新機能であるCのprintfに対応する可変引数を受け取るString#formatを使おうとしていますが、Eclipseでコンパイルエラーが発生してコンパイルできません。 Eclipse外で JDK1.5を使いコンパイルすれば問題ないのですが、Eclipseではうまくいきませんどうすればいいのでしょぅか。 EclipseのWorkspaceのプロパティ設定ではきちんとJRE1.5のパスを指定しています。

    • ベストアンサー
    • Java
  • XPPROでJDK1.3は動かない???

    あるWebアプリケーションを自端末で動かそうとしたところ動かなかったため、 いろいろ調べているうちに、JDK1.3で開発されているからでは?と考え、ためしに1.3で動かしてみようと、j2sdk-1_3_1_16-windows-i586.exeをダウンロードしてインストールしたのですが、奇妙な現象にあっています。 まず、JAVA_HOMEを1.3にするとTOMCATは起動しません。 c:\jdk13に移動して java[enter] とすると・・・何もでません。エラーも何もでません。 簡単なコードを書いてjavacしてみましたがやはり何も出ず、コンパイルもされません。 1.4を削除してから再びインストールしてみましたが同様の現象です。 これはどういうことなのでしょうか?

  • jdkとjreの互換性について

    PCのWebブラウザからJAVAアプレットを使用しています。 jdk1.4でコンパイルしていたソースをjdk1.5でコンパイルしてjre1.4で使用したところ、 ランタイムエラーが表示されてしまいました。 jdk1.5でコンパイルした実行ファイルをjre1.4とjre1.5の両方で使用することは可能なのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • Java
  • eclipseの事で助けてください

    先日まで使っていたeclipseが今日突然開けなくなりました。 eclipseを開こうとすると、 A Java Runtime Environment(JRE) or Java Development kit(JDK) must be available in order to run Eclipse. No Java virtual machine was found after searching the following locations: C:¥eclipse¥jre¥javaw.exe 'javaw.exe' in your current PATH というメッセージが出てきました。 これを翻訳してみたら、 Java Runtime Environment(JRE)またはJava開発キット(JDK)は、Eclipseを走らせるために利用できなければなりません。Java仮想マシンは、以下の場所を捜した後に見つかりませんでした: C:¥eclipse¥jre¥javaw.exe あなたの現在のPATHの『javaw.exe』 でした。 これは、「Java仮想マシン」が「C:¥eclipse¥jre¥javaw.exe」になければいけないという意味でしょうか? それから、「PATH」の意味もわかりません。 昨日、プリンタのドライバとフォトショップをインストールしたのですが、これが原因でしょうか? よろしくおねがいします。