0

何年も前に作業した古いコードを更新するように依頼されました。xCode にはすべて eclipse がなく、緊急に変更が必要なため、xCode ATM から移行する時間がありません。

OS 10.5.8 ボックスに xcode 3.1.4 をインストールし、コードをローカルでコンパイルしました。

展開しようとしても機能しなかった「サポートされていない major.minor バージョン 49.0 エラー」は、サーバーが JVM 1.4.2 を実行しているようです。私はローカルに 1.6 を持っています。ローカル マシンを Java 1.4.2にダウングレードする方法について、いくつかの指示に従いましたが、成功しませんでした。

だから私はあきらめて、サイトの古いコピーをサーバーに戻しました。しかし、現在、サーバー上のすべてのサイトで同じエラー メッセージが表示され、3 ~ 4 年間アクセスされていないにもかかわらず、どのサイトも起動しません。何が起こったかわからない?私の唯一の論理的な説明は、ローカルではなくサーバーで誤って1つのアクションを実行したことですか? いずれにせよ、何が間違っているのか、それを修正する方法がわかりませんか?

  • これをデバッグするにはどこから始めればよいですか?
  • サーバー (OS 10.3.9) に新しいバージョンの Java 1.5 または 1.6 をインストールして、webobjects で正常に動作させることはできますか?
4

1 に答える 1

1

このプロジェクトはフレームワークですか、それともアプリケーションですか? それが他の WebObjects プロジェクトによって依存されているフレームワークである場合、このプロジェクトを更新したときにすべてが失敗し始めた理由を説明できます。

デフォルトでは、Xcode は、依存するライブラリまたはフレームワークを Project.woa バンドルに含めませんでした (または「埋め込み」ました)。この方法で構築されたアプリは、いくつかの特定の場所で利用可能な必要なリソースに依存し、起動時にそれらを読み込みます。それらすべてが互換性のないフレームワークまたはライブラリにリンクしている場合、それらはすべて機能しなくなります。

実際の「Unsupported major.minor version」エラーに関する限り、Mac で Java のバージョンをダウングレードする必要はありません。古いバージョンの Java をターゲットにするようにコンパイラに指示するだけで済みます。

Xcode が Ant を使用して Java コンパイルを行ったかどうかは覚えていませんが、Ant 1.7 以降を使用している場合は、build.xml ファイルを編集して、Ant に 1.4 互換のバイナリを Java 1.6 でコンパイルさせることができます。 javac タグには、次のような「ターゲット」パラメーターが含まれます。または、 Ant を呼び出すときに、コマンド ラインを介して、または Ant がロードするプロパティ ファイルを変更することにより<javac target="1.4" ... />、プロパティを渡します。ant.build.javac.targetbuild.properties は Xcode ベースの WebObjects プロジェクトにまだ存在していたと思います。もしそうなら、これはその物件にとって良い場所になるでしょう。

基本は、このスタックオーバーフローの質問でカバーされています: How to compile classes to JDK1.5 when ant is running in JDK1.6

于 2012-02-08T03:54:37.797 に答える