2017-12-20 328 views
7

Mam następującą sytuację:Jak dodać kilka słoików do ścieżki modułu?

Moduł Adres:

module org.abondar.experimental.address { 
    exports org.abondar.experimental.address; 
} 

Moduł Osoba:

module org.abondar.experimental.person { 
    requires org.abondar.experimental.address; 
    exports org.abondar.experimental.person; 
} 

ja ich budowy przy użyciu Maven, więc każdy moduł posiada własny reż cel ze słoika plik.

Próbuję uruchomić moduł Osoba, która ma główną klasę jak ten

java --module-path Address/target/Address-1.0.jar;Person/target/Person-1.0.jar -m org.abondar.experimental.person/org.abondar.experimental.person.Main 

Ale jestem coraz odmówiono zgody. Jak muszę skonfigurować ścieżkę modułu, w tym kilka modułów?

+2

Proszę pokazać cały tekst komunikatu o błędzie dostajesz (lub całą ślad stosu, jeśli” otrzymuję wyjątek). – VGR

+1

Również miło byłoby zobaczyć Twój "pom.xml" –

Odpowiedz

4

Dobrze próbuje to na jednym z moich projektów z MacOS, prawie skończyło się z czymś podobnym jak ten -

zsh: permission denied: .../.m2/repository/test/test/1.0.0-SNAPSHOT/test-1.0.0-SNAPSHOT.jar 
zsh: permission denied: .../.m2/repository/org/slf4j/slf4j-log4j12/1.7.12/slf4j-log4j12-1.7.12.jar 
zsh: permission denied: .../.m2/repository/org/slf4j/slf4j-api/1.7.12/slf4j-api-1.7.12.jar 

Przyczyną tego błędu jest to, że ścieżki do słoje są określone jako command to be executed on MacOS instead.

Jeśli ścieżka dostępu do modułu jest listą katalogów dla systemu MacOS (może to być ogólnie Unix), to nie pasuje do java tool documentation. Zamiast tego, co można szukać jest

java --help 

który stanowi

--module-path <module path> ... : oddzielone lista katalogów, każdy katalog jest katalogiem modułów.

iw tym przypadku poleceń, które będą pracować dla Ciebie są: -

java --module-path Address/target/Address-1.0.jar:Person/target/Person-1.0.jar -m org.abondar.experimental.person/org.abondar.experimental.person.Main 
+2

Chciałbym wiedzieć, skąd pochodzi "odmowa zgody". Czy to raczej skrypt niż java? Na ścieżce modułu, 'java --help' nie ma wystarczającej ilości miejsca w swoim wyjściu, aby pokazać wszystkie szczegóły. Zamiast tego zobacz JEP 261, gdzie zobaczysz, że wpisy na ścieżce modułu mogą być modułami lub katalogami modułów. –

+0

@AlanBateman Na początku wydaje mi się również, podobnie jak wyjście '--help' nie jest całkowicie zawarte w danych wyjściowych i wraz z tym występuje odmowa tego uprawnienia. Zajmiemy się tym dalej, aby dowiedzieć się, co dokładnie powoduje odrzucenie zezwolenia. (Dla mnie conajmniej) – nullpointer

+0

@AlanBateman By * jeden z moich projektów z MacOS * Chciałem wykonać podobną komendę z ***; *** oddzieloną ścieżką i to jest, gdzie otrzymałem powyższy błąd. Ścieżka w moim wierszu poleceń zawierała te katalogi * .m2/repository *. Również, aby dodać do szczegółów, pojawia się podobny błąd, gdy próbuję czegoś tak prostego jak '../. M2/repozytorium/test/test/1.0.0-SNAPSHOT/test-1.0.0-SNAPSHOT.jar' (tak , bez polecenia innego niż to). może za to odpowiada skorupa. Zostawiłem trochę zdziwionego siebie. – nullpointer