Hallo,
ich lade mithilfe von JNI eine dll. Es ist für ein Spiel gedacht, wo man seine KI selber schreiben darf (unter anderem auch mit c++ oder c# und nicht nur mit Java).
Beim ersten Mal klappt das auch wunderbar. Das Problem ist nun folgendes. Ich möchte mehrere KI's testen. Beim erneuten Laden einer neuen KI überschreibt er die alte nicht. Er läd die neue KI einfach nicht. (sehe ich an den Debugausgaben, die ich in der dll ausgebe). Der Pfad zum Laden der neuen dll ist aber jeweils der richtige, den lasse ich mir zu Testzwecken mit ausgeben.
Muss ich die geladene DLL erst "entladen"? Wenn ja wie? Oder wie gehe ich sonst vor? Ich muss sie nicht zwangsläufig entladen, mir würde es schon reichen, wenn er die neue dll lädt.
Ich danke für eure Hilfe!
hier ist der Code den ich verwende
ich lade mithilfe von JNI eine dll. Es ist für ein Spiel gedacht, wo man seine KI selber schreiben darf (unter anderem auch mit c++ oder c# und nicht nur mit Java).
Beim ersten Mal klappt das auch wunderbar. Das Problem ist nun folgendes. Ich möchte mehrere KI's testen. Beim erneuten Laden einer neuen KI überschreibt er die alte nicht. Er läd die neue KI einfach nicht. (sehe ich an den Debugausgaben, die ich in der dll ausgebe). Der Pfad zum Laden der neuen dll ist aber jeweils der richtige, den lasse ich mir zu Testzwecken mit ausgeben.
Muss ich die geladene DLL erst "entladen"? Wenn ja wie? Oder wie gehe ich sonst vor? Ich muss sie nicht zwangsläufig entladen, mir würde es schon reichen, wenn er die neue dll lädt.
Ich danke für eure Hilfe!
hier ist der Code den ich verwende
Code:
public class ApoSoccerAIJNI {
public void loadAI(String ai) {
System.out.println(ai);
System.load(ai);
}
public static native String getTeamName();
//... hier dann die ganzen anderen Interfacemethoden
}