11

ResourcesPlugin からワークスペースを取得しようとすると、次のエラーが発生します。

java.lang.IllegalStateException: Workspace is closed.
at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:339)

これを生成するコードは次のとおりです。

IWorkspace ws = ResourcesPlugin.getWorkspace();

この問題について教えてください。

4

2 に答える 2

15

Manifest.MFセクションにが含まれてorg.eclipse.core.resourcesいますRequire-bundleか?

そして、プラグインとしてテストを起動しますか?(「Javaアプリケーション」としてではありません)

このスレッドも参照してください。

リソースとファイルシステム」ヘルプページに記載されているように、

リソースプラグインクラス(で定義)からワークスペースにアクセスできますorg.eclipse.core.resources

リソースプラグインが実行されていない場合、ワークスペースはファイルシステムにのみ存在し、標準のファイルベースのツールを介してユーザーが表示または操作します。リソースプラグインAPIについて説明するときに、ワークスペースがディスク上でどのように表示されるかを見てみましょう。


この本から:

ワークスペースディレクトリには、-data呼び出しオプションで定義された名前に関係なく、次の2つの役割があります。

  • .metadataディレクトリの親として機能します
  • プロジェクトのデフォルトの場所として

ワークスペースにプロジェクトを含めることができるのは、次の場合のみです。

  • org.eclipse.core.resourcesプラグインは構成に含まれており、
  • 作業台から適切に開始しました

これは、アプリケーションに基づくIDE構成から自動的に行われorg.eclipse.ui.ide.workbenchます。

このスレッドも参照して、次のことを覚えておいてください。

ワークスペースは、プラグインのテストに使用されるランタイムワークスペースとは異なるワークスペースです。Eclipse PDE環境で実行すると、完全に空の新しいワークスペースが作成されます。

テストワークスペースのルートは、「-data」起動オプションを使用して指定できます。

ファイルにアクセスする場合は、プラグイン自体にファイルを含めてから、を使用してコンテンツを読み取ることができるファイルgetClass().getResourceAsStream("/myfile.txt")を取得することをお勧めします。InputStream

于 2009-06-07T18:01:27.690 に答える
0

プラグインを呼び出してみてくださいPlugin.getStateLocation()。ワークスペースが作成されます。これがないと、設定を保存することもできません。http://dev.eclipse.org/newslists/news.eclipse.platform/msg45020.html

http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/Plugin.html#getStateLocation%28%29

エラー、申し訳ありません-私は偶然この質問を完了しました:)

于 2010-03-22T19:18:51.797 に答える