import  java.io.IOException;
import  java.net.URL;

import  org.eclipse.core.runtime.FileLocator;
import  org.eclipse.core.runtime.Platform;
import  org.osgi.framework.Bundle;

import  com.work.base.exception.DataException;
import  com.work.view.Activator;

public   class  BundlePathUtil {

    
public   static  String getRealPath(String bundleID, String entry)
            
throws  DataException {
        URL urlentry;
        String strEntry;
        
try  {
            Bundle bundle 
=  Platform.getBundle(bundleID);
            
if  (bundle == null )
                
throw   new  DataException( " 请检查文件的路径 " , new  NullPointerException());
            
//  get path URL
            urlentry  =  bundle.getEntry(entry);
            
if  (urlentry == null )
                
throw   new  DataException( " 请检查文件的路径 " , new  NullPointerException());
            strEntry 
=  FileLocator.toFileURL(urlentry).getPath();
        } 
catch  (IOException e1) {
            
throw   new  DataException( " 请检查文件的路径 " , e1);
        }
        
return  strEntry;
    }
    
    
public   static  String getPluginPath(){        
        
return  Activator.getDefault().getStateLocation().makeAbsolute().toFile().getAbsolutePath();
        
    }   
    
}

另外,获取插件/rcp 的workspace的路径:

Platform.getInstanceLocation().getURL().getPath()