質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JVM

JVM(Java Virtual Machine)があれば、一連のコンピューターソフトウェアプログラムとデータストラクチャが、仮想マシンモデルを使って他のコンピュータプログラムやスクリプトを拡張できます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

Q&A

解決済

2回答

1047閲覧

Javaでの根本的な質問~JVMについて~

退会済みユーザー

退会済みユーザー

総合スコア0

JVM

JVM(Java Virtual Machine)があれば、一連のコンピューターソフトウェアプログラムとデータストラクチャが、仮想マシンモデルを使って他のコンピュータプログラムやスクリプトを拡張できます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

0グッド

1クリップ

投稿2018/11/26 11:51

Javaでの根本的な質問

Javaでの文法を一通り学び終えた者です。
一つJavaに関する根本的な質問をさせていただきます。

Javaは"Write once, Run anywhere"というキャッチフレーズがあるのがJanaの利点の一つだと思います。
これは.classファイルをJVM上で実行しているから上記のようなキャッチコピーが言えるのだと思います。

色々なサイトでこの利点を語っていたのですが、今世の中に出回っているデバイス上のほぼ全てJVMは実装されているのでしょうか?

MacOS,WindowsOS,AndroidOS,iOSのこれら全てのOSにJVMは標準で実装されているのでしょうか?(要するに、買った当初から、製造された時から、JVMが実装されているのかということです)

初心者な質問ですがよろしくお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Javaは"Write once, Run anywhere"というキャッチフレーズがあるのがJanaの利点の一つだと思います。

Pure Javaで書けばJVMが実装されているOS上では同じコードで同じ動作をします。。つまりJava VMが実装されているOSでJava APIのみの関数(メソッド)を使用することが前提で同じ動作をします。逆に言うとWindowsで言うdll、その他の外部モジュールを使用すると同一の動作を保証できません。
Javaだけの世界で構築したプログラムでJavaVMをサポートされているOS上では"Write once, Run any where"となります。

色々なサイトでこの利点を語っていたのですが、今世の中に出回っているデバイス上のほぼ全てJVMは実装されているのでしょうか?

有名所と言う条件なら全部ですが、組み込みの場合は全部ではなくJava言語自体サポートしていないほうが多いです。Javaの場合はOSありきなので、OSが存在しないマイコンなどではJavaでの開発ができません。

MacOS,WindowsOS,AndroidOS,iOSのこれら全てのOSにJVMは標準で実装されているのでしょうか?(要するに、買った当初から、製造された時から、JVMが実装されているのかということです)

MacOS,WindowsOSにはJVMが実装されていますが(標準インストールではなく、個人でインストールが必要)、Android、IOSにはJavaVMは存在しません。スマートフォンなど存在しない時代に開発された言語ですのでAndroid、IOSには"Write once, Run any where"は適用されないです。
Androidの開発にはAndroid Studio(Android SDK.ほぼJavaだがPure Javaではない)で開発し、IOSではSwift言語で開発がメインになります。

"Write once, Run any where"が適用される条件

OSがJVMをサポートしており、Pure Javaで開発された条件では"Write once, Run any where"となります。
過去のブログや記事が間違っているのではなく、時代とともに新しいOSやデバイス・需要がでてきて"Write once, Run any where"の範疇を超えてしまったと言えるのではないでしょうか。

Javaが覇権を握っていた時代ではWindowOS、MacOS、LinuxOSがシェアを独占してたので全てのデバイスでどこでも動くと言うように言われてたように感じます。

投稿2018/11/26 13:15

編集2018/11/26 13:25
mosapride

総合スコア1480

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/11/27 10:53

なるほど。今までのもやもやが覚めました。 ありがとうございました。
退会済みユーザー

退会済みユーザー

2018/11/28 11:24

申し訳ございません。 もう一つこれに関して質問があります。今の時代、Javaを学ぶ必要はなかったのでしょうか?(こう考える理由は、↑に書いてあるように、MacOS,WindowsOSはJVMは個人でインストールが必要であり、Android公式言語がKotlinになったからです) 回答お願いいたします。
mosapride

2018/11/29 02:15

言語はシステムを作るツールにすぎません。なんのために言語を学ぶかは人によります。 趣味なら何でも良いですし、就職したい会社があるなら中途採用ページに書いてある必要スキル欄にある言語を学ぶと良いと思います。作りたいシステムが特定言語に限定されているなら、それを学べば良いでしょう。 IT業界は変化が激しいので1つの言語で完結させる方が難しいですし、流行り廃りもあるので1つの言語だけにこだわるのは危険です。柔軟さが大切です。 1つの言語をある程度学習すると、他の言語に移行しても似ている部分が多いので決して無駄になることはありませんよ。
退会済みユーザー

退会済みユーザー

2018/11/29 11:26

僕はまだ学生なので趣味の範囲なので、好きな言語を学んでいきたいと思います。 ありがとうございました。
mosapride

2018/11/29 11:48

趣味の場合はスマホアプリが良いかもしれません。作って他人に見せれること(自慢)ってモチベーションに繋がります。 「そのアプリに意味あるの?」とか感想を言われるのも覚悟したほうが良いですが(実体験) 悪い言い方かもしれませんが「クソみたいなアプリ」でも動くレベル物を作るのには非常に労力を使います。 書籍やWebを使った勉強も重要ですが、一番身になるのはアプリを作ることです。 "理想(完璧)"のアプリを目指すのも悪くありませんが、「とりあえず動くアプリ」を作っていくのが私流の一番効率の良い能力向上方法です。(この助言は人それぞれなので、鵜呑みは危険ですが^^;)
guest

0

Java8ですがPC用の対応OSは以下に載っています。
Oracle JDK 8 and JRE 8 Certified System Configurations

元々は入っていないんじゃないですかね。
自分でインストールする必要があると思います。

モバイル用のOSに関しては以下に書いています。
モバイル用のJavaはどこで入手できますか。

モバイル・デバイスのJava機能は、通常そのデバイスの製造元によって組み込まれます。ユーザーがダウンロードしたり、インストールすることはできません。使用しているデバイスでこのテクノロジが使用できるかどうかは、そのデバイスの製造元に確認する必要があります。

投稿2018/11/26 12:35

root_jp

総合スコア4666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問