2017-12-13 17 views
1

私のRCP 4アプリでは、どのようにアプリケーションのワークスペースパスを取得できますか?私はいくつか試しましたが失敗しました:RCP 4アプリで現在のワークスペースパスを取得するにはどうすればよいですか?

ResourcesPlugin.getWorkspace().getRoot(); //Cannot used in RCP 4 app 
URL fileURL = FileLocator.find(Platform.getProduct().getDefiningBundle(),new Path("/"), null); //is not workspace 
Location instanceLocation = Platform.getInstanceLocation(); // the same as getInstallLocation() 
String s = System.getProperty("eclipse.workspace"); // 

助けてください!ありがとう!

答えて

0

Platform.getInstanceLocation()は動作するはずですが、あなたは1が-dataコマンドラインオプションを指定することで設定されていない場合は場所を設定し、起動中にコードを追加する必要があります。以下のような

何か:

Location instanceLoc = Platform.getInstanceLocation(); 
// TODO check for null 

if (!instanceLoc.isSet()) { 
    URL url = .... work out a location for the workpace 

    instanceLoc.set(url, false); 
} 

私はライフサイクルクラスの@PostContextCreate方法では、このようなコードを実行します。

注:上記のように場所を設定するまで、Location.getURLメソッドを呼び出さないでください。これを行う前にgetURLを呼び出すと、インストール場所のデフォルト値(テストしているもの)が設定されます。

関連する問題