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()