Java med Plugin
Jeg sidder og udvikler på et projekt i Java. Det køres fra en .jar-fil. Som input på vores program, kan brugeren f.eks. indtaste navnet på en algoritme, som skal udføres på nogle grafer under programkørsel. Det kunne f.eks. være "dijkstra".Da programmet hovedsageligt handler om fremstilling af grafer, er algoritmerne ikke implementeret i programmet. Derfor er jeg interesseret i, at brugerne selv kan implementere nogle algoritmer, som kan udføres på graferne på runtime i programmet. Vores jar-fil indeholder et interface som definerer, hvilke metoder en algoritme har. Dvs. jeg gerne vil lave et slags plugin i Java-kode til programmet.
I grove træk, kunne det f.eks. være følgende filstruktur:
- program.jar
- input.txt
- algo/dijkstra.class
Når program.jar så kører indlæser den input.txt hvor den f.eks. finder "run dijkstra on graph ..." og dermed skal den forsøge at indlæse algo/dijkstra.class på runtime og bruge dens metoder fra interfacet på den pågældende graf.
Jeg har f.eks. fundet et eksempel her:
http://www.exampledepot.com/egs/java.lang/LoadClass.html
Der kan jeg sagtens få loadet klassen, men den bliver kun oprettet som typen "Class" og dermed er den ikke til at arbejde med. Jeg kan ikke typecaste det til mit interface.
Nogen der har et bud på, hvordan man kan klare dette - eller noget lignende? Skulle det f.eks. være nemmere, hvis algoritmerne også ligger i en jar, så er det fint med mig.
På forhånd tak.
