我的项目目录结构(在Eclipse):我如何去使用一个OSGi包一个** ** CSS资源文件从另一个OSGi包
MyProjectContainingCSS/
src/ --> "source directory" on Eclipse's classpath/buildpath
com.me.myapp
style.css
MyProjectInheritingCSS/
src/ --> "source directory" on Eclipse's classpath/buildpath
com.me.myapp
StyleImpl.java
我想在CSS文件中使用的style.css在类StyleImpl.java
包含在OSGi包MyProjectContainingCSS
在其他OSGi包MyProjectContainingCSS
,
是这样的:
public class StyleImpl {
public static void main(String[] args) {
css = this.getClass().getResource("/com/me/myapp/style.css").toExternalForm();
scene.getStylesheets().add(css);
}
}
我如何才能在另一个OSGi包的一个OSGi包中使用CSS资源文件?
谢谢大家提前。
UPDATE
的bnd.bnd文件
Bundle-Version: 0.0.0.${tstamp}
-buildpath: \
../cnf/plugins/org.apache.felix.dependencymanager.annotation-3.2.0.jar;version=file,\
org.apache.felix.dependencymanager,\
osgi.core,\
launcher;version=latest,\
libs/commons-io-2.4.jar;version=file
Private-Package: ui.impl
Export-Package: ui
Import-Package: *
润描述
-runfw: org.apache.felix.framework;version='[4,5)'
-runee: JavaSE-1.8
-runsystemcapabilities: ${native_capability}
-resolve.effective: active;skip:="osgi.service"
-runbundles: \
org.apache.felix.dependencymanager,\
org.apache.felix.dependencymanager.runtime,\
org.apache.felix.dependencymanager.shell,\
org.apache.felix.metatype,\
org.apache.felix.eventadmin,\
org.apache.felix.configadmin,\
org.apache.felix.log,\
org.apache.felix.gogo.command,\
org.apache.felix.gogo.runtime,\
org.apache.felix.gogo.shell,\
launcher;version=latest,\
ui;version=latest,\
mainscreen;version=latest
-runsystempackages: javafx.application,javafx.scene,javafx.stage,javafx.scene.layout,javafx.event,javafx.collections,javafx.scene.control,javafx.scene.paint,javafx.scene.shape
在CSS包中创建一个类,将InputStream公开为CSS文件并将该类导入到另一个包中。 – 11thdimension
一个包如何知道在另一个包中可以找到具有特定名称的特定资源?这种假设意味着你违反了模块化封装。尝试找到一个不会对其他模块做出假设的解决方案。为什么不描述你正试图解决的*真实*问题? –