6

私のRCPアプリケーションでは、このコードを使用してパースペクティブを切り替えます。

IWorkbenchWindow window = getViewSite().getWorkbenchWindow();
window.getWorkbench().showPerspective(PRODUCT_PERSPECTIVE_ID, window);

コードは変更しませんでしたが、開発環境をから変更しました

java 6 64bits + windows + Eclipse Indigo

java 7 32bits + windows + Eclipse Juno

そして今、パースペクティブはこれ以上切り替わりません。例外はなく、デバッグで疑わしいものは何も表示されません。

バグレポートは見つかりませんでした。

説明はありますか?回避策?

4

3 に答える 3

6

私もこの問題に遭遇しました。私の知る限り、これはJuno(4.2.0)のリグレッションです。デバッガーを使用して、showPerspective()の呼び出しをステップ実行しました。実際に視点を変えるための明示的な試みは、どの時点でも行われませんでした。内部イベントリスナーが欠落しているか、新しいフレームワークへのshowPerspective()の移植が不完全である可能性があります。

回避策として、次のコードは私にとっての視点をうまく変えました:

IWorkbenchWindow window = getViewSite().getWorkbenchWindow();
IPerspectiveRegistry registry = workbench.getPerspectiveRegistry();
IWorkbenchPage page = window.getActivePage();
page.setPerspective(registry.findPerspectiveWithId(PRODUCT_PERSPECTIVE_ID));

これらの呼び出しが行われるコンテキストに応じて、これらの呼び出しの一部をnullガードするか、Workbench.isClosing()安全であることを確認することをお勧めします。

于 2012-08-07T15:00:06.317 に答える
2

これはバグhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=395084であり、6月にリリースされる予定のEclipseLunaで修正されています。

于 2014-02-06T13:34:13.953 に答える
1

これが私の問題を明確にして解決することを目的とした答えです:

Eclipse 4 IDEを使用して、Eclipse 4より前に開発されたRCPアプリケーションを構築し、Java 7機能を統合し、Windows32ビットと互換性を持たせます。そしてもちろん、視点を切り替えることができます。

この回答は、RCPアプリケーションでパースペクティブを切り替えて、新しいEclipse 4プラットフォームの機能または外観を使用したいという人々の問題を解決しません(Eclipse 4 IDEと混同しないでください)。しかし、少なくとも古いアプリケーション(Eclipse 3で開発されたもの)については、次のことを考えると、お勧めしません。

  • それはとても遅いので、アプリケーションはほとんど使用できなくなります
  • 多数のグラフィックグリッチがあります
  • バグがあり、その中にはパースペクティブスイッチに関連するものがあります

これらの3つの点については、Eclipse4プラットフォームによるものなのかEclipse3互換性レイヤーによるものなのかはわかりません。新しいEclipse4プラットフォーム用に特別に開発された新しいアプリケーションが正しく実行されることを願っています。

したがって、私の解決策は、Eclipse 3ターゲットを定義し、それをビルドに使用することでした。

完全な手順は次のとおりです。

  1. JDK 7をインストールします(32ビットバージョン)
  2. Eclipse 3.7(32ビットバージョン)をインストールします
  3. Eclipse 4(32ビットバージョン)をインストールします
  4. Eclipse 4を起動し、必要なプロジェクトをインポートします
  5. ウィンドウ/設定/プラグイン開発/ターゲットプラットフォームに移動します
  6. [追加]、[なし]の順にクリックします
  7. 「追加」、「インストール」の順にクリックし、Eclipse3.7ディレクトリーを選択します
  8. ターゲットを作成したら、それを選択します(ウィンドウ/設定/プラグイン開発/ターゲットプラットフォームにあります)

これで、で.product、「EclipseProductExportWizard」がEclipse3実行可能ファイルをビルドします。

実用的なメモ:

  • 「すべてクリーン」では不十分であり、ターゲットを選択した後にEclipseを機能させるには、Eclipseを停止/再起動する必要がありました。
  • インストールプロセスにより、私の.productフィールドの一部が消去されました。IDをリセットし、「製品にネイティブのラウチャーアーティファクトが含まれている」ことを確認する必要がありました
于 2012-07-18T10:23:00.997 に答える