- ベストアンサー
CLASSファイルの他UNIX上での動作について
こんにちわ。早速なんですけど、教えて下さい。 以下のことを行った場合、 (1)javaソースをHP-UNIX上でコンパイル後、圧縮。 (2)windows2000にダウンロード後、CDに焼く。 (3)Solarisで解凍し、実行環境に投入。 で、Solarisで正常に動作するでしょうか? javaだから出来るような気もするんですけど、やっぱりリコンパイルは必要な気もして。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
同じことを試したわけではないので自信はありませんが、仕事で Windows2000でjavaソースをコンパイルして動作確認した後で圧縮 Solarisで解凍して実行 で、Solaris上でリコンパイルせずに問題なく動作しているので、問題はないと思うのですが。 ただし、当然のことながら (1) HP-UNIX (3) Solaris では、Javaのバージョンは一致させておかないとダメですが
その他の回答 (5)
classファイルを一個のjarファイルとして圧縮すれば、展開(いわゆる解凍)しなくてもライブラリとして使えます。 jarファイルを作るコマンドは "jar" です。JDKの中に含まれます。使い方は参考URLをご覧ください。 >リコンパイルは必要な気もして。 必要ありません。確かに、一つのJavaプログラムの動作(特にスレッドやGUI周り)が環境によって違ってくることがあります。しかしこれは、Java VMの違いによるものであって javac コマンドの違いではありません。
お礼
回答を頂き、ありがとうございます。 そうだとしたら、jarファイルを抜き出して、そのまま対象マシンに投入してやれば、うまくいきそうですね。
- terra5
- ベストアンサー率34% (574/1662)
>HP-UNIXとsoralisで圧縮解凍のコマンドが違うんですか? 商用のunix系OSなら、compressなら問題無く同じように入っているでしょうが、 それ以外の圧縮形のソフトは同じ物があるとは限らないということです。 パスが通ってないかも知れないし、インストールされていないかも知れないし。 まあ、Cコンパイラがあれば、gzipのソースを入れておけばgzipも大丈夫でしょう(^^; ところで、JAVAは詳しくないのですが、標準でzip形式が使えるような話がありませんでしたっけ? jarとか。
お礼
ありがとうございます。 双方に共通のツールで圧縮するという部分は注意しないといけないですね。 ぼくも勉強し始めたばかりで詳しいという訳ではないですが、JAVAではzip形式やjarファイルをCLASSPATHに指定することで、ライブラリとして使用可能になります。
参考になればいいのですが。。。 前述の通り、Windows上で開発をしていますが、Windows上でzip圧縮して それをSolaris上でunzipしても、特に問題は起こっていません。 万が一問題になるようで、環境が許すならwindows上で圧縮してCDに焼くのでも いいかもしれませんね
お礼
今まで気が付きませんでしたが、そういうことが可能なら、 UNIX上の開発よりもWindows上での開発の方が 効率が良さそうですね。 JAVAの概念として、プラットフォーム依存しない…という部分は 知ってはいたのですが、古い頭が半信半疑でした。 ありがとうございました。
- pasta500g
- ベストアンサー率46% (30/65)
>HP-UNIXとsoralisで圧縮解凍のコマンドが違うんですか? gzipでもcompressでも、同じ圧縮フォーマットを使えばたぶん ダイジョウブだと思います。特に「ダメな場合がある」という 心当たりがある訳ではありません。 不安にさせてしまって申し訳ありませんでした。
お礼
ありがとうございます。 安心しました。
- pasta500g
- ベストアンサー率46% (30/65)
コンパイルしたClassファイル自体は、そのまま使えると思います。 但し、両方の環境で同じバージョンのJRE及びミドルウェア (よくあるのがWebコンテナやDBドライバ)が用意できているならば、 ですケド。 あと、HP-UXの環境に依存したファイルパスや環境変数は 使用していませんよね。 #圧縮/解凍コマンドの互換性も心配。^^;
補足
早速の回答ありがとうございます 環境は合わせるので、大丈夫だと思いますが、 圧縮解凍コマンドの互換性…という部分が気になります。 HP-UNIXとsoralisで圧縮解凍のコマンドが違うんですか? 具体的に教えてもらえるとうれしいです。 よろしくお願いします。
お礼
速攻の回答、ありがとうございます。 ちょっと不安だったのですが、win2000からで大丈夫なら、 問題なさそうですね。 (JAVAのバージョンは当然合わせます。)