PowerMac を使用していますが、一部の .jar で不適切なバージョン番号が表示されます。Java 6 を実行しているように見せたいのですが、どうすればバージョンを偽装できますか? また、私はPowerPC と Leopardを実行しているとしましょう
1 に答える
最も可能性の高い問題は、Java 6 JARファイルがあり、それらを古いJavaインストールで実行しようとしていることです。
バージョンをどのように偽装しますか?
あなたの質問への答えはあなたができないということです。Java 6(またはそれ以降)のJREまたはJDKを使用するためにJava6固有のJARファイルを実行する方法。
問題は、Javaクラスファイルの形式が変更されており、インストールが新しい形式に対応できないことです。そして、これはあなたが存在しないふりをすることができる不必要な変化ではありません。Java 6(実際にはJava 5)は、ジェネリック型、列挙型、注釈などをサポートしています。JARにこれらの新しい言語機能を使用するコードが含まれていると仮定すると、古いJREはそれらをどう処理するかを単純に知りません。
2つの解決策があります:
Javaインストールをすべてのマシンで必要なレベルにアップグレードします。これが最善の解決策です...オプションの場合...ユーザーがセキュリティとバグ修正およびパフォーマンスの強化の恩恵を受けることを意味するためです。(そして、プロジェクトの進行は、レガシープラットフォームをサポートするという制約によって妨げられることはありません。)
まだ使用しなければならない最も古いバージョンのJavaとの互換性のために、すべてのコードをコンパイルします。
javac
マニュアルページで説明されているように、対応する古いJDKでコンパイルするか、適切な-source / -target/-Xbootclasspathオプションを使用してより新しいJDKでコンパイルします。
2番目の解決策の欠点は、問題のJARファイルのソースコードが最近追加されたJava言語機能またはAPIを使用している場合、古いプラットフォームの再コンパイルが失敗することです。これを修正するには、コードを書き直して、現代的なものを古風なものに置き換える必要があります。良い解決策ではありません、IMO。
もう1つの可能性は、破損したJARファイルが表示されていることです。これは起こりそうにありませんが、アプレットまたはWebスタートを使用していて、サーバーがJARファイルではなくエラーページを配信している場合に発生する可能性があります。
3番目の可能性は、MacのJavaインストールが正しく構成されていないことです。Java 7をデフォルトにすると、クラスバージョンの問題なしにすべてを実行できるようになります。(@ paulsm4に感謝します)私はそれであなたを助けることができないことに注意してください...'cos私はMacでJavaを使用しません。