- ベストアンサー
PowerPC向けJavaベースのアプリケーションって?
わたしはプログラムの勉強をはじめたい、と興味を持っている段階のまだ門外漢の者ですが、どうかよろしくお願いします。 インテルのマックの情報をいろいろ探していたら 「PowerPC向けにコンパイルされたJavaベースのアプリケーションも動作不能になる。ファイル共有ソフトの『ライムワイヤー』などがこれに該当する」 という記述に出会いました。 http://news.livedoor.com/webapp/journal/cid__1668206/detail?rd 「Javaアプリ」はプラットフォームに依存しないが、 「Javaベースのアプリ」というのはもはやJavaではない、 ということで受け止めてよろしいでしょうか? ・・・Javaベース、というのは、どんなことをするものでしょうか? マイクロソフトは勝手にJavaを拡張した規格をつくって互換性を失わせたが、アップルでは絶対にJavaの聖域は侵すことがない、と宣言されているのを何度も聞いて来ましたので、あれれ?とおもって投稿してみました。 どうぞよろしくおねがいします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Mac OS Xの「Javaベースのアプリケーション」というのは、Javaアプリケーションではありません。 Mac OS Xでは「Cocoa framework」と呼ばれるフレームワークがOSに用意されていて、それを使ってアプリケーション開発をします。その開発に利用できる言語としてJavaも用意されている、ということです。 これは、Windowsの.netで、.net frameworkを使って開発するのにC++やC#、VBなどの言語が用意されているのと同じようなものと考えればいいでしょう。Mac OS XのOSにあるAPIを呼び出し処理するのにJavaという言語を利用できるということであり、pure Javaのプログラムとは根本的に違います。アプリケーションの中で、APIとのやりとりをする部分にJavaが使われているというだけであり、その他にもネイティブなコードを含んでいますから、いわゆる「Javaのプログラム」とは全く違います。 また、pure Javaなアプリケーションも、Mac OS Xではラップすることでネイティブなアプリケーションにできます。これも当然ですがMac OS X以外では動かなくなります。 例えば、pure JavaアプリケーションをWindowsのEXEにラップするプログラムなどがありますね。これでEXEにしたものは、JavaのプログラムですがWindows以外では動きません。当然ですね。要するに、「一部にJavaを使ったネイティブなアプリケーション」はプラットフォームに依存する、ということです。
その他の回答 (1)
- mokonoko
- ベストアンサー率33% (969/2859)
IntelMacの実情が分からないので、自分なりの解釈で回答します。 Javaが動作するにはJava仮想マシン(JVM)が必須です。 このJVMはJavaコードからそのOSやハードに依存したコードに変換しながら実行します。 今、IntelMacではこのJVMが正常に機能していないと思われます。 つまり、IntelMac向けのJavaがまだ提供されていない、もしくは十分なサポートが得られていないということだと思います。 よってこれからSUNがIntelMac向け(ネイティブコードの)JVMを提供することで解決すると思われます。
お礼
さっそくにありがとうございます! なるほど、低レベルの制御もするプラットフォーム依存アプリのことをJavaアプリとは別物で、 「Javaベース」のアプリ、 と呼んでいると思えばよい訳ですね! Javaアプリというと一個のコードで全てのプラットフォームに使える、と教わったので、低レベルの処理は最初から出来ないのかなあと思っていました。 どうもありがとうございました。
補足
なるほど、「一部にJavaを使ったネイティブなアプリケーション」という意味だったのですね! これはよくわかりました! ・・・ところで、そうするとこの記事に例としてあげられていたライムワイヤーはピュアjavaアプリケーション版と、MacOSX専用のJavaベース版、の二種類がMacで使える、という理解でよろしいでしょうか? limewire.com で「forMacOSX」とされている版は実行にはJVMを必要としないCocoaアプリになっている、という訳ですね?