Zastąpienie klasy z jar'a

0

Cześć
Taka sytuacja:
Mam jara: test.jar. W jego środku są dwie klasy: A.class (main class) i B.class oraz "luzem" klasę B.class z dodanym pewnym kodem.
Czy można "zmusić" JVM, żeby przy standardowym odpaleniu jara komendą java używała "luźną" klasę B.class zamiast tej która jest w jarze.
Od razu uprzedzam, że chce to zrobić bez rozpakowywania jara i jakiejkolwiek modyfikacji jego.

0

Jest to możliwe, jeśli odpowiednio ustawisz Classpath. Przeczytaj w dokumentacji javy w jakiej kolejności JVM ładuje sobie definicje klas ;)

0

Wiem do czego służy class loader. Próbowałem już go używać, ale nie udało mi sie rozwiązać tego problemu za jego pomocą. Klasa zawsze ładowała się z jara.

0

To coś źle zrobiłeś. Przecież da sie nawet podmienić klasy z rt.jar przez
http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
więc nie wierzę że nie da sie zwykłej klasy ;) Musisz tak ustawić classpath żeby najpierw zaladowało twoją zmienioną definicję.

1

Dla potomnych i autora (jeśli jeszcze nie udało mu się skorzystać z rady @Shalom`a), system Windows:
java -Xbootclasspath\a:katalog_z_klasą_A;test.jar -jar test.jar
lub
java -Xbootclasspath\p:katalog_z_klasą_A;test.jar -jar test.jar
Ważny jest dwukropek i brak spacji przed nazwą katalogu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1