No.9ベストアンサー
- 回答日時:
今までの回答者さん達の内容から、JVMというのは「JRE」や「JDK」の中に入っている、というのが分かるかと思います。
故に、『どの時点でどのようにして』というのを以下の2つに分けて回答していきます。
1.【Javaソフトウェアの実行時[JREの中のJVMを使用]】
→実行環境が異なるので、各プラットフォームごとにさらに分けます。
1-1.J2ME
携帯などの場合は、厳密には「KVM」という用語を用います。(携帯関連の仕事から退いてもうかれこれ数年経つけど、今ではだいぶ変わっているのかな?)
たとえば、i-appli対応の携帯電話であれば、docomoのショップなどで新規購入の『時点』で、もう既にKVMがインストされているわけですね。(正確には、工場出荷前の段階で、各実機にインストされていると思われる。)
1-2.J2SE
PCの場合は、各OSごとにいろいろと異なってきます。(MacやBSD系は使ったことがないので、割愛。)
1-2-1.Linux
TurboLinux FUJIの場合は、デフォルトでSunのJDKが入っているので、OSのインストール直後からすぐに利用可能です。FedoraやCentOSなどでは、OSのインストールの途中で選択可能ですが、Sunとは異なるGNU系統(GCJ)だったりするので、わざとチェックを外し、Winなどと同じようにインターネットや各種専門書などから後でインストしたりもします。
1-2-2.Windows
XP以降からは、デフォルトでインストールできなくなったらしく、以下のサイトなどから必要なのを自分でインストします。
java.com(→ゲームなど。)
http://www.java.com/ja/
OpenOffice(→無料のオフィスソフト。)
http://ja.openoffice.org/
1-3.J2EE
サイトの管理者さんなどが、外部に公開する前に、サーバ上にインストしているものと思われます。
ここのサイト「oshiete.goo.ne.jp」などでは、php3のファイルなどがよく拝見されますが、「search.goo.ne.jp」の方ではウェブ検索の結果のURL上にweb.jspやGETで送信したと思われるクエリーの文字列などが見受けられるので、ServletやJSPなどが動くWebアプリケーションサーバが内部で動作しているのでしょう。
2.【Javaソフトウェアの開発時[JDKの中のJVMを使用]】
以下のサイトなどを元に、JDKをインストールした『時点』で、JVMもそのOSにインストされます。IDE(統合開発環境)を使えば、プラグインなどによりどのプラットフォームの開発も可能となっています。
本家サイト(→コマンドベースでコーディング。)
http://java.sun.com/javase/ja/6/download.html
Eclipse(→人気No.1。日本語対応版は、Pleiadesの方で。)
http://www.eclipse.org/downloads/
NetBeans(→インストール時にSunオススメのソフトがくっついてくるので、注意が必要。)
http://ja.netbeans.org/
choconamacreamさん、何度も丁重なレスを有り難う御座いました。
結局、JVMというのは「JRE」や「JDK」の中に入っていて、それらをインストールする時に自動的にそれぞれの「OS」に
適合するJVMだけがインストールされるという理解でよいのでしょうか。
因みに、アプリケーションプログラムは、コンパル済みの実行可能ファイルなので、「JVM」を必要とせず、
ソースファイルを実行する時(コンパルしてオブジェクトファイルを作成する時?)だけは、JVMが必要ということでしょうか。
もう一つの質問ですが、色々とノートPCを見ているとコントロールパネルの中に「JAVA」というアイコンがありました。(Win XP SP3)
別のPC(Desk Top Win XP SP3)のコントロールパネルには「JAVA」のアイコンはありませんでした。
これはなにか意味があるのでしょうか。
再度宜しくお願いします。
No.8
- 回答日時:
>そのJVMがどの時点でどのようにしてそのOSにインストされるかを知りたいのですが。
。。。。。普通はJava開発キット(JDK)やJavaの実行環境(JRE)などをインストールしたときにインストールされます。
「普通は」と書いたのは、上記以外にも自分の知らないところでJavaがインストールされることがあるからです。
例えば、オラクルクライアントをインストールするとオラクルクライアントのインストーラが同時にJavaをインストールしてしまいます。
(正確にはきっとインストールの説明か何かに「Javaがインストールされます。」って書かれているんでしょうけど…。読み飛ばしてしまうことが多いです。)
No.7
- 回答日時:
「そのJVMがどの時点でどのようにして」インストールされるのかというと, 管理者が「インストールしよう」と思って操作したときにインストールされるんです. そこには魔法もなにもありません.
ついでにいうと「マシン語のオブジェクトを作れない」というよりは, 「(現実には存在しない) JVM という名の機械用のマシン語のオブジェクトを作る」というべきでしょう>#4. もっとも「あれが『マシン語』か」って突っ込みは受け付けません.
No.6
- 回答日時:
>これは、JDKとかをOSにインストールした時に、自動的にインストールされるものでしょうか。
はい、そうです。
>IT技術情報>Java>JAVAコマンドを知る
http://www.stackasterisk.jp/tech/java/javaComman …
強いてあげれば、以下のような感じ?
JVM < JRE < JDK
>それとも、ソースファイルをコンパイルした時に自動的に作られるものでしょうか。
いいえ、そうではありません。
ソースファイル(~.java)をコンパイルした時に自動的に作られるのは、実行ファイル(~.class)です。
>また、このJVMは何故どのOSにも対応出来るのでしょうか。
「なぜ?」って、そりゃやっぱし、Sunが『マルチプラットフォーム』を謳ったからでしょう。(当時は、MSと犬猿以上の仲だったというは、業界内でも有名な話でしたし‥。)
参考URL:http://ja.wikipedia.org/wiki/JVM
No.5
- 回答日時:
まとめ的に、こんな区分けで、理解できませんか?
JDK : コンパイラーとランタイム(JRE) とを含む
コンパイラー(javac.exe) : 「.java」ソースを「.class」ファイルにコンパイルする
JRE : ランタイム : 「.class」ファイルを実行する環境(JVM)を提供する。OSごとにインストールするものが違う。windows用では「.dll」という機械語ファイルで、JVMの本体が提供されている。
JVM : Java Virtual Machine : 「.class」ファイルを読み込み、ウインドウアプリケーションや、applet、servletなどを実行する。実際にはjava.exe やappletviewer.exe や各ブラウザのプラグインなどが、このJVMを起動する。windowsでは、起動中はtea capアイコンがタスクトレイに表示される。
「.class」ファイル : 中間コードファイル : JVMに読める形式のファイル。
「.java」ソース : テキストファイル。人間が読みやすいようにかかれたファイル。
No.4
- 回答日時:
こんにちは
#2です。
>>JVM上で動くJavaアプリケーションプログラムは、どのOSでも動くが
> 上記の意味は、Javaアプリケーションプログラムは「JVM」を必要とせず、ソ
>ースファイルの時だけは、JVMが必要ということでしょうか。
素人なのでそこまで突っ込んだ質問の回答は、用意していませんでしたが、javaは、マシン語のオブジェクトを作れない中途半端なコンパイラという認識です(中間コードコンパイラ)。 これは、Windows上のCコンパイラでコンパイル&リンクしたマシン語(バイナリ)がdllを必要とするのとは次元が違うと認識しています。
家に帰ったら私もjavaの入門書を読み返してみますね(^^;
No.3
- 回答日時:
Javaはソースファイル(.javaファイル)をコンパイルすると、
クラスファイル(.classファイル)が作成されます。
このクラスファイルはどのOSでも共通で、同じソースファイルであれば、
Windowsでコンパイルしても、Solarisでコンパイルしても同じものができますし、
Windowsで作成したクラスファイルもSolarisでちゃんと動きます。
(厳密にはいろいろ(ファイル区切り文字など)考慮する点もありますが。)
ではなぜ違うOSで作成したクラスファイルが動くかというと、
JVMにも
Windows用のJVM
Solaris用のJVM
などそのOS用のJVMがあり、JVMでOSの違いを吸収しているからです。
>Windows用のJVM
Solaris用のJVM
などそのOS用のJVMがあり、JVMでOSの違いを吸収しているからです。
そのJVMがどの時点でどのようにしてそのOSにインストされるかを知りたいのですが。。。。。。
No.2
- 回答日時:
こんにちは
#1さんの補足です。
>また、このJVMは何故どのOSにも対応出来るのでしょうか。
そのOS毎にソースファイルをコンパイルして専用のJVM(Java Virtual Machine)を作るからです。
JVM上で動くJavaアプリケーションプログラムは、どのOSでも動くがJVMは、OS専用(というか各機種かな=「JVM というプログラムが動作する環境」)のものを必要とするということです。
A88No8さん、有り難う御座います。
>JVM上で動くJavaアプリケーションプログラムは、どのOSでも動くが
上記の意味は、Javaアプリケーションプログラムは「JVM」を必要とせず、ソースファイルの時だけは、JVMが必要ということでしょうか。
No.1
- 回答日時:
端的にいうと, JVM は「クラスファイルのインタプリタ」, あるいは「エミュレータ」です. で, しょせんはソフトウェアですから, 「JVM というプログラムが動作する環境」であればどんな OS でも 動作します.
そして, これは JDK なり JRE なりをインストールすれば自動的にインストールされます... というか, インストールしてくれないと Java のプログラムを動かせない.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 中古パソコン 富士通 ESPRIMO B532/G のBIOSが表示されない 3 2023/01/03 16:42
- デスクトップパソコン キャプチャーボードDRECAP DC-HC4のドライバー 1 2022/05/30 15:40
- Windows Vista・XP WindowsXPを最近のパソコンにインストール出来ますか? 今使用している10で動いているパソコン 14 2023/05/06 08:23
- 中国語 新しいMS-Windows OSの度に多大な出費 自作PCでLinuxOS・挑戦したい新OS 1 2022/07/05 14:32
- その他(OS) MAC VirtualBoxにインストールしたWindows11がフリーズする 1 2023/03/14 16:31
- Windows 10 USBにwindows10をいれて起動する方法 5 2022/04/14 14:29
- Windows 10 どうしたらパソコンに詳しくなれる?? 5 2022/04/04 19:09
- Windows 10 explorerをedgeで開く方法 2 2022/06/05 14:59
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- その他(パソコン・スマホ・電化製品) officeの再インストールをしたいのですがプロダクトキーが判りません ウインドウズ10の動作がおか 4 2022/05/01 17:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseのアンインストールの仕方
-
マイクラjavaでForgeを入れたい...
-
vs codeはオフラインでも使用で...
-
OptiFineをJAVAで開こうとする...
-
MSDNのコレクションがありませ...
-
ワードプレスで、特定の記事の...
-
arduino ide 2.0.0 について
-
libericaJDKというののJavaFXで...
-
サクラエディタについて
-
【Visual Basic】Ping確認の方法
-
この <windows.h> はどこに在る...
-
フォトエディッタのインストー...
-
XAMPPのスタート(表示)画面が表...
-
Java(JDK)のインストールについ...
-
ホームページビルダー再インス...
-
ActivePerlをインストールしよ...
-
JAVAでゲームを作りたい
-
Jupyter Notebook の拡張機能(N...
-
Python3.12のインストール方法
-
セットアップファイル(MSIとEX...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseのアンインストールの仕方
-
マイクラjavaでForgeを入れたい...
-
vs codeはオフラインでも使用で...
-
ActivePerlをインストールしよ...
-
この <windows.h> はどこに在る...
-
MSDNのコレクションがありませ...
-
ワードプレスで、特定の記事の...
-
セットアップファイル(MSIとEX...
-
Javaをインストールしたんです...
-
OptiFineをJAVAで開こうとする...
-
ユーザー名を漢字で登録してし...
-
MATLABのtoolboxのインストール...
-
Jupyter Notebook の拡張機能(N...
-
windows7 ADTプラグイン追加で...
-
64bitでbasp21の使用方法
-
VBSでuser32.dll(Win32API)を...
-
JDKでJavaアプリケーション実行...
-
IEの印刷機能を制御して印刷設...
-
OO4Oのインストールのしかた
-
stdoleについて
おすすめ情報