2011-02-10 47 views
1

清單:的OSGi無法找到激活

Manifest-Version: 1.0 
Bundle-Name: Mahjong 
Bundle-Activator: MahjongActivator 
Bundle-SymbolicName: Mahjong 
Bundle-Version: 1.0.0 
Import-Package: org.osgi.framework 

編譯&不和諧:

$ javac -classpath equinox.jar src/start/*java 
$ jar -cfm Mahjong.jar MahjongManifest.mf src/start/*class 

活化劑:

package start; 

import org.osgi.framework.*; 

public class MahjongActivator implements BundleActivator 
{ 
    public void start(BundleContext context) 
    { 
     System.out.println("Hi!"); 
    } 
    public void stop(BundleContext context) 
    { 
     System.out.println("Bye!"); 
    } 
} 

然後我加載的.jar在OSGi和時我試着start()吧,它說:

org.osgi.framework.BundleException: The activator MahjongActivator for bundle Mahjong is invalid 
     at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:156) 
     at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:751) 
     at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370) 
     at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284) 
     at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:276) 
... 
Caused by: java.lang.ClassNotFoundException: MahjongActivator 
... 
some more ClassNotFounds... 

爲什麼?

回答

2

它應該是「Bundle-Activator:start.MahjongActivator」 - 你已經省略了包名。

相關問題