• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WindowsでのJavaについて)

WindowsでのJavaについて

このQ&Aのポイント
  • Windows上でのJavaの役割とは?どのような処理を行っているのか気になります。
  • 仮想計算機とは何か?JavaプログラムとCプログラムの違いについて知りたいです。
  • JavaScriptプログラムはWindows上でどのように実行されるのかが分からないので教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • flamin50
  • ベストアンサー率63% (19/30)
回答No.2

コンピュータの概念を少し調べていただかないと、理解は難しいかもしれません。 次のようなキーワードを検索すると良いと思います。 機械語、アセンブラー、高級言語 コンパイラー、インタープリター 仮想マシン、エミュレータ 中間言語(バイトコード) 1.コンピュータは機械語しか処理できません。  機械語は32ビット、64ビットなどを単位とした1と0の羅列です。  1と0の羅列を人が読みやすいニーモニック(英数字)に置き換えたのがアセンブラーです。 2.機械語はコンピュータの動作そのものを記しています(メモリ参照、演算、分岐など)。  これを、人間の作業に近いイメージで書けるようにしたものが高級言語です。  Cは高級言語です。高級言語は機械語に翻訳する必要があります。それをするのがコンパイラーです。  コンパイラーは翻訳して機械語のファイルを作るだけですが、翻訳してすぐにコンピュータに実効  させることもできます。これがインタープリターです。インタープリターはいわば「通訳」です。 3.機械語はコンピュータの種類(CPU)によって違います。 したがって、コンパイラーもインタープリターも、それぞれ別のものが必要です。  同じ高級言語の記述から、それぞれのマシンに応じた機械語に翻訳します。  4.他のマシンの動作をソフトウェアで処理して、いかにも他のマシンのようなふりをするのが  エミュレータです。たとえば、MacOSの上でWindowsのふりをするエミュレータがあれば、  Windows マシン用に翻訳された機械語がMacで動作します。  JAVA仮想マシンもエミュレータです。いろいろなOSの上で「JAVAマシン」のふりをします。 5.JAVAも高級言語なのでコンパイル(翻訳)が必要です。ただし、本当の機械語ではなく、  JAVA仮想マシンが処理できるようにした中間言語に翻訳します。これがバイトコードです。 6.JAVAのアプリ/アプレットーはバイトコードで配布されます。Webページなどにも組み込まれています。  したがって、これを実効するためには仮想マシン(エミュレータ)が必要です。  アップデートの通知があるのは、この仮想マシンだと思われます。 「機械語」の定義などに語弊がありますが、たいだいのイメージはこんな感じだと思います。

MetalLover
質問者

お礼

御回答ありがとうございます。 大変御丁寧に説明して頂き、非常に感謝しています。 「機械語、アセンブラー、高級言語 コンパイラー、インタープリター 仮想マシン、エミュレータ 中間言語(バイトコード)」 については、説明して頂いた内容で、大体理解できました。 仮想マシンについては、もう少し勉強したいと思いました。 その仮想マシンについてですが、Java以外に、Cなどの高級言語のプログラムも、 仮想マシンを使っているからこそ、様々なOS上で、 動かす事ができるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • flamin50
  • ベストアンサー率63% (19/30)
回答No.3

2 です。 先にお答えした記述は、ほんのさわりにすぎません。 無理に簡略化したので語弊もあります。私自身の誤解もあると思います。 先にあげたキーワードなどを検索するなりして、学習されることをお勧めします。 Cのコードは主にコンパイルされて実行形式に変換されます。 実行形式は各マシン(OS)によって異なります。先に説明した「機械語」に近いイメージです。 市販のアプリがOSを選ぶのはこのためです。 Cのコンパイラは各マシン(OS)ごとに用意されているので、基本的に同じソース(Cのコート)から、 各マシン用の実行形式のファイルが作れます。 実行形式のファイルは、そのOS上で動く様に作られるので、仮想マシンは必要ありません。 一方、JAVAのバイトコードは「JAVAマシン」の上で動作するように作られます。 JAVAマシンは現実には存在しないので、 WinやMacOSの上で「JAVAマシンのふりをする」仮想マシンが必要です。 参考まで。

MetalLover
質問者

お礼

御回答ありがとうございます。 御説明して頂いた内容で、 CとJAVAの根本的な違いが分かりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • IDii24
  • ベストアンサー率24% (1597/6506)
回答No.1

javaのバーチャルマシンはIEで動きます。つまりJavaを使用したサイトがあるという事です。これらのサイトにアクセスするとローカルのコンポーネントを動かして、サイトが見れるのです。 でも最近javaの仮想マシンにセキュリティの穴が多くみつかり、アンインストールするユーザーも増えてます。オラクル社の対応が間に合って無いのでしょうね。 でもそれによってサイトが見れないなどの不都合は出るでしょう。 IEにはJAVAの挙動の設定ができますので、そちらで制御することもできます。 ちなみにJAVAとCはまるで違います。どちらかと言うとC#に近い言語でオブジェクト指向型です。C++より安全を重視して作られた言語でフリーで広まったので、最近では主流になってます。それに追従させるためにMSが考えたのがC#です。MSはVBを捨ててまでC#に賭けてますが、VBのように手続き型言語ではWebは処理しきれないのと、セキュリティも危ないからです。同じことはC言語にも言えます。

MetalLover
質問者

お礼

御回答ありがとうございます。 Javaの実行環境の事を、Java仮想マシンというのですね。 これによって、様々な場所で、Javaプログラムが動くという事は理解できました。 では、JavaScriptプログラムも、こういった仮想マシンによって、 実行されるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 開発環境の設定(SQLとJavaについて)

    自宅のPCにJDK(J2SE Development Kit 5.0)をインス トールしましたが、環境変数の点で困ったことが 生じております。 ユーザー環境の設定でPATHのところに、 「C:\Program Files\Java\jdk1.5.0\bin」を 設定するのですが、既にSQLの設定で入れており 上書きをすることになります。 そのため、SQLの開発環境が失われ、起動することが できなくなります。 再度、PATHにJavaの環境をSQLの設定「C:\Program Files\Firebird\bin;」で上書きすれば問題はあり ません。 このように、設定の上書きをしないでJavaとSQLの開発 環境(PATH)の設定ができるような手法を教えて 頂けないでしょうか。宜しくお願いします。 開発環境 ■Java  JDK(J2SE Development Kit 5.0) ■SQL Firebird J2SE いずれとも書籍に付属されているCD-ROMから PCにインストールしています。

  • JAVAがアンインストールできない

    JAVAをダウンロードしてインストールしようとしたがインストール出来なかった。 OS:Windows 7 Home Premium JAVAをインストールしようとすると、「このソフトウェアは使用中のコンピュータにすでにインストールされています。再インストールしますか?」とのメッセージが出る。「はい」をクリックすると、「この操作は現在インストールされている製品に対してのみ有効です。」というメッセージが出て終了してしまった。 すでにJAVAがインストール済みであれば、それを一旦削除することにした。まず、コントロールパネルからプログラムの一覧を表示したが、JAVAの表示は無い。次に、「Windows Installer CleanUp」をインストールして、JAVAを探すが見つからない。 コマンドプロンプトで「java -version」 'java'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。 JAVAファイル C:\Program Files\Common Files\Java 以下を削除してもダメ。どうすればJAVAを完全にアンインストールできるのでしょうか。

  • javaのインストール

    これからjavaの勉強をはじめようと思い、十日で学ぶjavaという本を買ってきてインストールしましたが、うまくインストールできません。 環境はXPからCDからやりました。ダウンロード自体はうまくいっているのですが、環境変数の設定が違うのか、pathにC:\Program Files\Java\jdk1.5.0\binを入れてjavacをコマンドプロンプトで動かそうとしても操作可能なプログラムとして認識されませんと出ます。また、telnet等普段使っているコマンドも同じようになってしまい大変困っています。どなたかこの文章を読んで何が原因でどうしたらいいか分かる方がいらっしゃればご指導いただければと存じます。

    • ベストアンサー
    • Java
  • Javaを始めようと思いますがどうやって始めたらよいかわかりません

    初めてのjavaで検索し、 http://itpro.nikkeibp.co.jp/article/lecture/20070130/260066/ このサイトを見つけ、リンク先 http://java.sun.com/j2se/1.5.0/ja/download.html から JDK 5.0 Update 14(Windows Platform - Java Development Kit 5.0 Update 14)Windows Offline Installation, Multi-language をダウンロードしてインストールしましたが、 "\Program Files\Java\jdk1.5.0_10\bin\javac" のようなパスは存在せず、 "\Program Files\Java\jre1.5.0_・・・" というちょっと違うパスしかありません。 Javaを最初から始めるにはどうしたらよいでしょうか?

    • ベストアンサー
    • Java
  • JAVAのJDK6/7の切り替え

    64ビットのWindows8のマシンにjdk-6u21-windows-x64.exeとjdk-7u45-windows-x64.exeの2つ をインストールした状態で、環境変数で、 JAVA_HOME6 : C:\Program Files\Java\jdk1.6.0_21 JAVA_HOME7 : C:\Program Files\Java\jdk1.7.0_45 JAVA_HOME : %JAVA_HOME6% PATH : %JAVA_HOME%\bin; のようにして6と7を切り替えられるようにして使いたいのですが、現在上記の設定で、 >path を実行すると6のパスを指しているのですが、 >java -version を実行すると常に7を表示します。 この状態で、コマンドプロンプトからコマンドを実行したり、Eclipseを立ち上げた場合、実際 どちらのものが使われることになるのでしょうか? また、ひとつのマシンで上記のようにJavaを切り替えて使うことは可能なのでしょうか?

    • ベストアンサー
    • Java
  • Windows98でProgram Files\javaへの環境変数の設定

    Windows98にJAVAをインストールしたいのですが (サーバーにしたい)。 javaへのPATHがうまく通りません。 おそらく、PATHでの\Program Filesの記載が長いのか 半角スペースがあるため、Windows98では、 うまくいかないものと思われます。 この場合、パスの通し方はどうなるのでしょうか。 JAVAをフォルダごとC:\下に動かすことも考えましたが、 今度は、JVMへのパス?(JVMの認識がうまくいかなく なる)がきになります(Javaフォルダには、jdkとjre があるので)。 98の場合、どうするのがいいのでしょうか。

    • ベストアンサー
    • Java
  • java

    java言語開発環境JDKをインストールしてjavaでプログラムを作って、コンパイルをしたのですが、javacが認識されていません。内部パッチ、外部パッチがないといわれるのですが全然分かりません。教えてください。

  • javaプログラムがコンパイルできない

    javaの勉強を始めようと思い、環境を作ってみました。 しかし、記念すべき第一作目のプログラムがコンパイルできなく、困っています;; 初心者で、説明もうまくないと思うので、補足要求をしていただければ幸いです。 【状況】 ・JDK6をダウンロード・インストールしました。 ・保存先は「C:\Program Files\Java\jdk1.6.0_14」です。 (この保存先は正しいのでしょうか。普通の人はどこに保存するのでしょうか。) ・コントロールパネル>システム>詳細設定>環境変数で、ユーザ環境変数で、 変数:PATH、値:C:\Program Files\Java\jdk1.6.0_14\bin を新規作成してみました。 ・サンプルプログラムを「C:\Program Files\Java」に保存しました。 (この保存先は正しいのでしょうか。普通の人はどこに保存するのでしょうか。) ・コマンドプロンプトでディレクトリを「C:\Program Files\Java」にして、「javac "(サンプルコードのファイル名)"」と実行しました。 ・「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」 と言われてしましました。 お忙しいところ恐縮ですが、助けていただけると嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • javaのプログラミング環境に関して

    プログラミング初心者でJAVAのプログラミング環境を整えたいと考えているのですが、JDKのダウンロードとインストールは完了したのですが、バスの設定に関しても環境変数の変数値でも行末に ;C:\Program Files\Java\jdk1.6.0_14\bin と編集はしました。 これで一応は環境は整ったということでいいんでしょうか? http://www.bohyoh.com/Java/JDK/index.html を参照しました。

  • javaが起動しません

    http://www.java.com/ja/ というサイトに行って「無料javaのダウンロード」から ダウンロード→インストール を完了しました。 結果、現在「プログラムの追加と削除」には 「java(TM)6 Update3」というものが追加されました。 他に「java」と名の付くプログラムは見あたりません。 そして他のHPにある、javaで起動するプログラムを クリックすると 「このアプリケーションを起動できません」 というメッセージが出ます。 しかし、http://www.java.com/ja/ にある「インストール確認」で確認しますと 「Java のバージョンを確認しました。正常な設定です。 お使いのオペレーティングシステムに推奨されたバージョン (Version 6 Update 3) の Java がインストールされています。 」 というメッセージが出ます。 私の環境ですが OSはWindowsXP SP2 IEは6.0 SP2 です。 また、他のjava関連のサイトを参考に環境変数も変更しました。 変数名:PATH 変数値:C:\Program Files\Java\jre1.6.0_03\bin に変更済みです。 それからcommandで「javac」と入力しましたら 「操作可能なプログラムまたはバッチファイルとして認識されていません」 と出ます。 どのようにしたらjavaが実行出来るのでしょうか? どなたかお教え下さい。

このQ&Aのポイント
  • 迷惑な赤の他人との対処方法を知りたい
  • 近所にいる迷惑な人に対処する方法を教えてください
  • 迷惑な人について不安があり、対処法を知りたい
回答を見る