JavaはOS(実行環境)が変わるたび、コンパイルが必要なものなのでしょうか?

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

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/09/21 12:09:10
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:hive7134 No.1

回答回数167ベストアンサー獲得回数16

ポイント5pt

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

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

id:nil55

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

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

2006/09/21 11:48:18
id:masatsubame No.2

回答回数97ベストアンサー獲得回数2

ポイント15pt

http://jp.sun.com/

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

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

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

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

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

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

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

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

うがいいと思われます。

id:nil55

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

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

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

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

2006/09/21 11:49:39
id:kosuke2020 No.3

回答回数73ベストアンサー獲得回数8

ポイント15pt

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

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

id:nil55

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

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

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

2006/09/21 11:50:24
id:b-wind No.4

回答回数3344ベストアンサー獲得回数440

ポイント30pt

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

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

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

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

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

id:nil55

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

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

いかないんですね!!

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

2006/09/21 11:47:27
id:kurukuru-neko No.5

回答回数1844ベストアンサー獲得回数155

ポイント40pt

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

id:nil55

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

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

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

2006/09/21 11:46:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません