Plugin和App的统一路径接口

本文介绍了一种在Eclipse插件开发中处理路径差异的方法,通过创建一个工具类实现插件与普通应用间的路径获取统一化,适用于单元测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Eclipse插件(Plugin)开发中,需要写一些Test Case(by JUnit),这些Test Case不是以插件方法运行的,而是一些普通的Application。这时要注意到插件和App获取路径的方式是不同的,这时如果你要测试一些项目中的一些涉及到读文件的一些类,无疑会导致出错。为了让Plugin和App路径获取透明化,不防写一个工具类来提供统一的路径获取方法,示例类如下所示:

这个思路也可以扩展到Plugin和App不一样的地方,这样写起Test Case就方便多了。

说明:示例中的AdminConsolePlugin类就是创建插件项目自动生成的那个类,你的项目也许叫“项目名+Plugin”

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

import org.eclipse.core.runtime.Path;
import org.eclipse.ui.plugin.AbstractUIPlugin;

import com.wxxr.management.admin.console.AdminConsolePlugin;

/**
 * 用于插件项目和非插件项目,提供两者通用的方法接口
 * 
@author chengang 2006-3-30
 
*/
public class ProjectUtil {

    private static AbstractUIPlugin plugin = AdminConsolePlugin.getDefault();

    private ProjectUtil() {}

    /**
     * 判断当前的运行状态是否为插件方式
     * 
@return true=插件方式运行
     
*/
    private static boolean isPlugin() {
        return plugin != null;
    }

    public static URL getURL(String path) {
        if (isPlugin())//如果是插件
            //return plugin.find(new Path(path));
            return FileLocator.find(plugin.getBundle(), new Path(path), null);    //陈刚修改于2006-8-24,eclipse3.2已经建议用此方法
        else
            try {
                return new URL("file:" + path);
            } catch (MalformedURLException e) {
                throw new RuntimeException(path + " is error", e);
            }
    }

    public static InputStream getInputStream(String path) {
        URL url = getURL(path);
        try {
            return url.openStream();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值