异常的eclipse插件问题
我有一个非常不寻常的问题。 我用属性页开发了这个插件。当我以Eclipse应用程序的形式运行插件时,它工作得非常好,但当我导出插件并将其复制到Eclipse/dropin文件夹时,我得到了ClassNotFoundException 我的Manifest.mf如下所示:异常的eclipse插件问题,eclipse,Eclipse,我有一个非常不寻常的问题。 我用属性页开发了这个插件。当我以Eclipse应用程序的形式运行插件时,它工作得非常好,但当我导出插件并将其复制到Eclipse/dropin文件夹时,我得到了ClassNotFoundException 我的Manifest.mf如下所示: Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: SpectrumPlugin Bundle-SymbolicName: sinaut.spectrum.p
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: SpectrumPlugin
Bundle-SymbolicName: sinaut.spectrum.plugin; singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: sinaut.spectrum.plugin.activator.SpectrumPluginActivator
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0",
org.eclipse.ui;bundle-version="3.4.2",
org.eclipse.core.resources;bundle-version="3.4.2",
org.eclipse.ui.console;bundle-version="3.3.1"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ClassPath: JARs/sshfactory.jar,
.
Import-Package: org.eclipse.ui.console
Export-Package: com.jscape.a,
sinaut.spectrum.plugin.activator,
sinaut.spectrum.plugin.ftp,
sinaut.spectrum.plugin.preferences,
sinaut.spectrum.plugin.remotebuild,
sinaut.spectrum.plugin.ssh
<plugin>
<extension
point="org.eclipse.ui.preferencePages">
<page
id="BildPreferencePage"
name="Bild Preferences"
class="sinaut.spectrum.plugin.preferences.BildPreferencePage"
>
</page>
</extension>
<extension
point="org.eclipse.core.runtime.preferences">
<initializer
class="sinaut.spectrum.plugin.preferences.PreferenceInitializer">
</initializer>
</extension>
<extension
point="org.eclipse.ui.actionSets">
<actionSet
id="sinaut.spectrum.plugin.RemoteBildActionSet"
label="RemoteBildActionSet"
visible="true">
<menu
id="sinaut.spectrum.plugin.RemoteBuildMenu"
label="Remote Build Menu">
<groupMarker
name="content">
</groupMarker>
<separator
name="additions">
</separator>
</menu>
<action
class="sinaut.spectrum.plugin.remotebuild.RemoteBuild"
icon="/icons/rb.gif"
id="sinaut.spectrum.plugin.RemoteBuild"
label="Remote Build"
state="true"
style="push"
toolbarPath="Normal/additions">
</action>
</actionSet>
</extension>
</plugin>
plugin.xml如下所示:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: SpectrumPlugin
Bundle-SymbolicName: sinaut.spectrum.plugin; singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: sinaut.spectrum.plugin.activator.SpectrumPluginActivator
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0",
org.eclipse.ui;bundle-version="3.4.2",
org.eclipse.core.resources;bundle-version="3.4.2",
org.eclipse.ui.console;bundle-version="3.3.1"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ClassPath: JARs/sshfactory.jar,
.
Import-Package: org.eclipse.ui.console
Export-Package: com.jscape.a,
sinaut.spectrum.plugin.activator,
sinaut.spectrum.plugin.ftp,
sinaut.spectrum.plugin.preferences,
sinaut.spectrum.plugin.remotebuild,
sinaut.spectrum.plugin.ssh
<plugin>
<extension
point="org.eclipse.ui.preferencePages">
<page
id="BildPreferencePage"
name="Bild Preferences"
class="sinaut.spectrum.plugin.preferences.BildPreferencePage"
>
</page>
</extension>
<extension
point="org.eclipse.core.runtime.preferences">
<initializer
class="sinaut.spectrum.plugin.preferences.PreferenceInitializer">
</initializer>
</extension>
<extension
point="org.eclipse.ui.actionSets">
<actionSet
id="sinaut.spectrum.plugin.RemoteBildActionSet"
label="RemoteBildActionSet"
visible="true">
<menu
id="sinaut.spectrum.plugin.RemoteBuildMenu"
label="Remote Build Menu">
<groupMarker
name="content">
</groupMarker>
<separator
name="additions">
</separator>
</menu>
<action
class="sinaut.spectrum.plugin.remotebuild.RemoteBuild"
icon="/icons/rb.gif"
id="sinaut.spectrum.plugin.RemoteBuild"
label="Remote Build"
state="true"
style="push"
toolbarPath="Normal/additions">
</action>
</actionSet>
</extension>
</plugin>
这一定是件蠢事,但我就是看不见。
如果有人能帮我的话。我已经在这个问题上纠缠了好几个小时。用下面的参数启动eclipse
-console
然后在OSGi控制台中找到您的插件id,如
ss sinaut.spectrum.plugin
最后使用diag查看插件无法解析的原因
diag <id found by ss command>
diag
试着启动它,看看它的激活器是否有问题
start <id>
开始
当我执行ss sinaut.spectrum.plugin命令时,我得到以下消息:框架启动。id State Bundle没有id:/看起来你的插件不是由OSGi安装的,试试eclipse.exe-clean或者在OSGi的控制台中手动安装你的插件怎么样。是的,激活器有点问题…只是不知道是什么。我已经手动安装了插件,当我启动它时,我得到BundleException:用于bundle sinautt.spectrum.plugin的激活器…SpectrumPluginActivator无效。。。我检查了build.properties文件和类本身,一切似乎都很好。非常感谢。可能导致activator无效的一个因素是无法通过jvm解析导入某些activator类来初始化activator故障。我不确定是否理解您的意思。我已经检查了MANIFEST.MF,如果这是您的意思,那么activator是正确声明的。