Załóżmy, że mam pewną bibliotekę lib.jar
, dla której nie mam kodu źródłowego (lub jest ona napisana w języku innym niż Java, który nie jest jeszcze zaznajomiony z modułami). lib.jar
nie ma module-info.class
i nie chcę używać go jako modułu automatycznego, więc chciałbym wprowadzić do niego module-info.class
.Jak wprowadzić deklarację modułu do JAR?
ja najpierw wygenerować module-info.java
pomocą następującego polecenia:
jdeps --generate-module-info . lib.jar
Załóżmy, że generowane coś takiego:
module lib {
exports package1;
exports package2;
}
Wtedy staram się go skompilować ale javac
powiodło się, ponieważ pakiety package1
i package2
zrobić nie istnieje:
> javac module-info.java
module-info.java:4: error: package is empty or does not exist: package1
Oczywiście, mogę tworzyć katalogi package1
i package2
z klasami dummy, ale czy jest jakieś lepsze podejście?
kiedy używać tego polecenia, wciąż pojawia się błąd: > javac module-info.java module-info.java:4: error: Pakiet jest pusta lub nie istnieje : package1 Jakieś idei, dlaczego może nie działać dla mnie? –
@TiagoSantos Czy pakiet istnieje w JAR? – ZhekaKozlov
tak, wszystko wydaje się w porządku, udało mi się to zrobić przy użyciu powyższego rozwiązania od nullpointer, zgadzam się, że twoje rozwiązanie jest bardziej eleganckie, jedynym problemem jest to, że nie działa z moim .jars:/próbowałem w 2 różnych –