从Java ME中的ClassPath加载资源

时间:2011-04-07 15:22:29

标签: java java-me

在Java中,我可以在类路径中拥有多个资源的多个实例,因此可以访问它们:

ClassLoader loader = Thread.currentThread().getContextClassLoader();
Enumeration<URL> resources = loader.getResources("META-INF/services/myService.properties");
while(resources.hasMoreElements()){
    URL resource = resources.nextElement();
    // process each resource here
}

这允许使用服务提供者接口,通过将额外的jar放入类路径,可以在运行时提供多个实现。

Java ME中有没有相同的内容?

[更新2011年4月11日]

如果我能以某种方式获取类路径中的jar文件列表,我可能只需将URL传递给连接器,如下所示:

String [] jarFiles = ... // somehow I got this
for(int i = jarFiles.length-1; i >= 0; i--){
    String url = "jar:file:"+jarFiles[i]+"!/META-INF/services/myService.properties";
    InputStream in = Connector.openInputStream(url);
    //process each resource here
}

我知道如何在J2ME的类路径中获取所有jar文件吗?

1 个答案:

答案 0 :(得分:0)

经过一些研究,看起来应用程序必须包含在J2ME环境中的单个Jar文件中,因此类路径等概念根本不适用,这意味着这是不可能的。所有依赖项必须在编译时可用。