3 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
首先,您需要一個(gè)所有插件都需要實(shí)現(xiàn)的接口,例如
public interface Plugin {
public void load(PluginConfiguration pluginConfiguration);
public void run();
public void unload();
public JComponent getConfigurationPage();
}
然后,插件作者應(yīng)將其插件捆綁到JAR文件中。您的應(yīng)用程序?qū)⒋蜷_JAR文件,然后可以使用JAR清單中的屬性或JAR文件中所有文件的列表來查找實(shí)現(xiàn)您的Plugin接口的類。實(shí)例化該類,插件即可使用。
當(dāng)然,您可能還希望實(shí)現(xiàn)某種沙箱操作,以使該插件在它可以做什么和不能做什么方面受到限制。我創(chuàng)建了一個(gè)小型測試應(yīng)用程序(并向其發(fā)布了博客),該應(yīng)用程序由兩個(gè)插件組成,其中一個(gè)被拒絕訪問本地資源。

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
使用OSGi。
它是Eclipse插件系統(tǒng)的基礎(chǔ)。Equinox是Eclipse的實(shí)現(xiàn)(許可的EPL),F(xiàn)elix是Apache Project的實(shí)現(xiàn)(許可的Apache Public License)。
Eclipse提供了一個(gè)具體的示例,OSGi可以涵蓋您提到的要點(diǎn)(或者,如果您想要完整的Eclipse / SWT / JFace堆棧,則可以在Eclipse RCP之上構(gòu)建應(yīng)用程序)。
添加回答
舉報(bào)