実際のリリースに備えて、ITチームのためにSnowLeopardをテストしています。現在、Java JDK1.6に付属しているシード10A394を実行しています。
Snow Leopardで実行されなくなったJavaデスクトップアプリケーションが1つ見つかりました。アプリは起動しません。ベンダーは、JDK1.5にダウングレードすることを推奨しています。
問題は、私が最初に見つけたMacパッケージのすべてのJavaは、それがApple)のバージョンのMacOSにインストールされようとしていることを確認することです。 =パッケージが作成されたときに念頭に置いていました。 このページ 良い例です。2つの異なるパッケージがありますが、それぞれがインストール前にMacOS 10.4または10.5を明示的にチェックするため、どちらもSnowLeopardでは機能しません。
インストールしたら、順序を変更して低いバージョンが優先されるようにする方法を知っています。インストールするパッケージが見つかりません。
MacOSには、1.3までさかのぼるJavaのバージョンが付属しています。/System/Library/Frameworks/JavaVM.framework/Versions
を参照してください。パッケージからインストールする必要があるのは、最新のJavaはOSバージョンよりも新しく、何らかの理由でソフトウェアアップデートを使用できません。
アプリケーションのベンダーが実際に責任を負う必要がありますが、おそらくアプリの.plistを編集することで問題を修正できます。アプリケーションを右クリックしてパッケージの内容を表示を選択し、テキストエディタでInfo.plist
ファイルを開きます。そのファイルにJava
辞書とキーJVMVersion
が表示されます。値を1.5*
に変更します(1.4+はバージョン1.4以降を意味し、1.6 *は1.6の任意のバージョンになります)。これにより、アプリはJava 1.5で実行されます。
しかし、これがすべてではないかもしれません。 Info.plist
の横に、MacOS/JavaApplicationStub
があります。これは、JVMを起動する実際のMacOSXバイナリです。開発者は、OSと互換性のない古いバージョンのこのファイルをアプリに同梱している可能性があります。このファイルの最新のコピーは、すでに/System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub
にあります。アプリケーションのバージョンをこれに置き換えます。
アプリケーションは、(たとえば)64ビットとして起動された後に32ビットのネイティブライブラリをロードできないため、まだ実行されない可能性があります。その場合、lipoコマンドを使用してスタブの64ビット部分を取り除くことができます:lipo -remove x86_64 JavaApplicationStub -output JavaApplicationStub
これがうまくいくことを願っています。もしそうなら、もちろんアプリの開発者に知らせてください。
Javaの複数のバージョンがインストールされている場合は、アプリケーション/ユーティリティ/ Javaで優先順位を変更できます。
必要なバージョンをインストールし、最優先バージョンに設定します。