Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse RCP CSS样式在导出后不起作用_Java_Eclipse_Eclipse Rcp - Fatal编程技术网

Java Eclipse RCP CSS样式在导出后不起作用

Java Eclipse RCP CSS样式在导出后不起作用,java,eclipse,eclipse-rcp,Java,Eclipse,Eclipse Rcp,我按照中建议的步骤,通过从org.eclipse.platform复制CSS和images文件夹,为不同的操作系统设置CSS主题 当我从Eclipse启动它时,它工作得很好,但是当我导出产品文件(无论是从Eclipse还是通过Maven)时,根本没有CSS样式 我已经检查了build.properties,css和images文件夹被标记为导出,所以我不明白为什么找不到它们 我正在开发一个移植到4.x的3.x RCP软件 <extension id="liteproduct"

我按照中建议的步骤,通过从org.eclipse.platform复制CSS和images文件夹,为不同的操作系统设置CSS主题

当我从Eclipse启动它时,它工作得很好,但是当我导出产品文件(无论是从Eclipse还是通过Maven)时,根本没有CSS样式

我已经检查了build.properties,css和images文件夹被标记为导出,所以我不明白为什么找不到它们

我正在开发一个移植到4.x的3.x RCP软件

<extension
     id="liteproduct"
     point="org.eclipse.core.runtime.products">
  <product
        application="com.xyzide.rcp.application"
        name="XYZ IDE">
     <property
         name="applicationXMI"
         value="com.xyzide.rcp/LegacyIDE.e4xmi">
   </property>
     <property
           name="cssTheme"
           value="com.xyzide.ui.css.theme.e4_default">
     </property>
  <property
         name="applicationCSSResources"
         value="platform:/plugin/com.xyzide.rcp/images/">
  </property>
  </product>



我从产品扩展中省略了一些不相关的属性。

因此,在greg-449的帮助下,我能够确定在导出RCP时,它需要将包含css和images文件夹的插件打包为目录

我在Manifest.MF中添加了以下内容

Eclipse-BundleShape: dir

当我导出时,样式工作得很好。我至少在Windows上测试过,看起来还可以。还需要检查其他操作系统。

如果在
basestylesheeturi
值的开头包含
platform:/plugin/com.xyzide.rcp/
,我认为这将在jar中起作用


使用jar占用的空间少了一点,但我注意到Eclipse安装确实使用了一个目录(这可能只是为了更方便地访问文件)。Eclipse有时会将JAR扩展到缓存中,但我认为CSS和图像文件不会这样做。

定义产品的plugin.xml中有什么内容?我已经用代码更新了问题。plugin.xml看起来还可以。检查导出的产品插件是否包含css目录。我的产品由两个插件组成:com.xyzide.plugin和com.xyzide.rcp。后者包含css文件,在我导出的产品中是一个jar文件,那么如何检查css文件夹?在my build.properties中,它被选中用于导出。此外,在此之前,我有固定的样式,工作良好(ApplicationSS属性)啊哈。。。我想我找到了。。。出于某种原因,我必须将其导出为目录,而不是jar文件,而且它似乎可以工作。我不知道为什么它与ApplicationSS一起工作,因为它还有一个css和图像文件夹!我认为,如果在
basestylesheeturi
值的开头包含
platform:/plugin/com.xyzide.rcp/
(至少这是我所拥有的,它可以工作)。对不起,这可能是一个愚蠢的问题,但有什么理由让我把它作为一个jar而不是一个目录保存吗?你是对的!我怎么会这么傻。。。我回顾了我以前的应用程序代码,这就是我的代码。我猜我只是在论坛上直接使用了这个代码,没有意识到。你能把你的评论作为答案发表吗?我会接受的。很不幸,这似乎不起作用,我不得不恢复到目录设置。这可能与此有关-可能是。我在我的样式表中不使用CSS导入。我在所有OSs上测试了它,它只适用于作为目录的捆绑包。。。。对不起,我将不得不接受你的答案,但我一定会投赞成票!
Eclipse-BundleShape: dir