人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaはOS(実行環境)が変わるたび、コンパイルが必要なものなのでしょうか?
実行環境(WinからMacなど)が変わる事によりソースを修正する必要はないけど、コンパイルはしなおす必要があるって感じなんですか??
すごく初歩的な質問ですいません…よろしくお願いします。

●質問者: nil55
●カテゴリ:コンピュータ インターネット
✍キーワード:Java MAC OS WIN コンパイル
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● hive7134
●5ポイント

PureなJavaならばOSごとにコンパイルしなおす必要はありません。

http://e-words.jp/w/1002520Pure20Java.html

◎質問者からの返答

御返信ありがとうございます。

WORAという言葉は知ってるんですが、実際本当にそうなのでしょうか?


2 ● masatsubame
●15ポイント

http://jp.sun.com/

javaで作成したプログラムはコンパイルするとバイトコードという

ファイル(.classファイル)を作成します。このファイルがJavaVM

下で動作します。よって、これを移植すればOSが異なっていてもコ

ンパイルする必要はないと思います。JavaVMはOS毎に異なりますの

で、これはそれぞれインストールする必要があります。あと、java

のソースファイルでクラスパスの設定などをしているのであれば

(移植元.classファイルが複数あり、異なるディレクトリに存在し

ているのであれば)、移植先もそれに合わせて実行環境を構築したほ

うがいいと思われます。

◎質問者からの返答

御返信ありがとうございます。

基本は不要なのですが、複雑な構成(環境)から

作り直す(リコンパイル)しなくてはいけないケースも多いということですよね?

勉強になりました! ありがとうございました!


3 ● kosuke2020
●15ポイント

http://e-words.jp/w/Java.html

プラットフォームごとにコンパイルし直す必要はなく、コンパイルしてできたJavaバイトコードを、Java仮想マシンと呼ばれるソフトウェアが各プラットフォーム間の違いを吸収して実行するそうです。

◎質問者からの返答

御返信ありがとうございます。

JVMが違いを吸収してくるんですねー。

勉強になりました。ありがとうございます!


4 ● b-wind
●30ポイント

"Write once, run anywhere" (WORA、「一度(プログラムを)書けば、どこでも実行できる」)

を謳っていますので、基本的には再コンパイルの必要はありません。

ただし、JVM毎に若干ですが動作しようが違うことがあるので、

まったく同じ動作にしようと思えばプログラム的な工夫がだいぶ必要です。

http://ja.wikipedia.org/wiki/Write_once,_run_anywhere

◎質問者からの返答

御返信ありがとうございます。

WORAとはいえ、やっぱり謳い文句通りという訳には

いかないんですね!!

貴重なご意見ありがとうございます!!


5 ● kurukuru-neko
●40ポイント

Javaバイトコードのコンパイルは原則不要です。

但し、Javaのバージョンの違いや、Javaバイトコード

のコンパイラの不具合や、Javaバイトコードの互換性、

Java実行環境の互換性の違いがある場合があります。

100%完全にコンパイルなし、ソース修正なしでの動作保障

されているわけではありません。

例:

http://java.sun.com/j2se/1.4/ja/docs/ja/guide/plugin/developer_g...

Java関連用語

http://www.aplix.co.jp/jp/learning/glossary.html

◎質問者からの返答

御返信ありがとうございます。

そうですよね! 以前SEの人が「WinからMacに移して再コンパイルした」とか言ってたような気がしたんです! WORAって言葉は知ってたので 「あれ?」と思い今回質問させて頂きました。

貴重なご意見ありがとうございます!!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ