Dostałem kod Java-bajt (tak skompilowane źródło java), który jest generowany w moim programie. Teraz chcę załadować ten kod bajtu do aktualnie uruchomionej maszyny wirtualnej Java i uruchomić określoną funkcję. Nie jestem pewien, jak to osiągnąć, trochę wczepiłem się w Java Classloaders, ale nie znalazłem prostego sposobu.Załaduj kod bajtów Java w środowisku wykonawczym
Znalazłem rozwiązanie, które pobiera plik klasy na dysku twardym, ale kod bajtowy, który dostałem, znajduje się w tablicy Byte-Array i nie chcę zapisywać go na dysku, ale użyć go bezpośrednio.
Dzięki!
myślę pod tym linkiem powinny znaleźć to, czego szukasz: http: //tutorials.jenkov. com/java-reflection/dynamic-class-loading-reloading.html Zobacz ostatnią sekcję "Przykład ładowania/ponownego ładowania ClassLoader". –
Moje pytanie było niejasne: nie mam pliku klasy, ale tablicy bajtów i chcę załadować go bezpośrednio. Dzięki i tak! – theomega
Jestem przekonany, że mój link dokładnie to potwierdził. Przynajmniej znalazłem to przez to: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html#defineClass (byte [], int, int) Możesz także oczywiście zawsze zapisuj tablicę bajtów w katalogu tymczasowym. –