2010-12-30 11 views
2

Eclipseプラグインを開発しましたが、ディレクトリを読み取って結果を取り込むJavaファイルがあります。 実行> Javaアプリケーションでeclipse自体からファイルを実行しようとすると、適切な結果が得られますが、Eclipseアプリケーションで同じものを実行しようとすると、ディレクトリを見つけることができないためNullPointerExceptionがスローされます。eclipseプラグイン・アプリケーションでファイルを読み取っているときに問題が発生しました

パッケージ - - com.test.abhishek.file.java.TestWork.java

ディレクトリ - com.test

は、私は次の ways-と仮定、私はパッケージを持っているとして試してみましたTestWork.java- で今.abhishek.file.java.Dir1 com.test.abhishek.file.java.Dir2 入力ストリームは、( "/" + dirNameに)= HelpContentView.class.getResourceAsStreamある; **

上記の行が失敗しています。 私のディレクトリをどのように保つべきか、それがEclipseプラグインとしても実行される場所

TestWork.class.getClassLoader()によってクラスパスを見つけることを試みた。のgetResource( "")。ある、getPath()及びだから今、私はressolveために私のディレクトリをダンプするべき場所/ として出力を取得。

答えて

1

findEntries APIが必要なようです。いくつかのサンプルコードの場合

、ちょうどあなたが何をしているかを理解しようと How to test if a URL from an Eclipse bundle is a directory?

+0

ポールを使用したいプラグインを作成している場合は....あなたは日食に私のシナリオを説明していただけます。私はそれをデバッグする方法を意味します。 –

+0

パッケージマネージャーのbuild.propertiesファイルを検索します。それを開く。必要なリソースがチェックされていることを確認してください。 –

+0

@Abhishek追加の説明を読んだ後に私の答えを更新しました –

2

に関連する質問(と回答)をチェックしてください。ソース構造内に取得したいディレクトリがありますか? Eclipseプラグインは通常、/ pluginsディレクトリに置かれています。つまり、A)build.propertiesを使用してリソースをプラグインにバンドルするか、ファイル構造のどこかに配置し、通常のファイルIOメカニズムを使用してアクセスする必要があります。

あなたが最も可能性が高いBundle.getEntry代わり

public void start(BundleContext context) { 
    Bundle bundle = context.getBundle(); 
    InputStream in = bundle.getEntry("/"+dirName").openStream(); 
} 
関連する問題