> ... tak co budem mat v Main()? Právě proto, že to není tak jednoduché, tak jsem posílal odkaz na to OSGi.
Ale v kostce (pokud nechce použít OSGi ale psát si to celé sám) to musíte mít nějak takhle: interface IFunkce { public String get(); } class Dummy implements IFunkce { public String get() { return "dummy"; } } class Placena implements IFunkce { public String get() { return vysledekPlaceneVerze(); } } class FunkceFactory { public static IFunkce getFunkce() { //zjisti jestli je dispozici placena verze napr. pomoc Class.forName(); //kdyz ne, vrat Dummy } } class Main { public static void main(String[] args) { //v pohode zkompiluju FunkceFactory.getFunkce().get(); } }