Właśnie zostałem wepchnięty na pokład javy.
W przypadku istniejącego pliku jar log4j.jar (http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.17/log4j-1.2.17.zip), Umieszczam go w podfolderze ./lib, mój źródłowy plik Java MyDemo.java znajduje się w folderze ./jms/example i używam jms.example jako nazwy pakietu i importuję klasy log4j do mojego pliku Java:
package jms.example;
import org.apache.log4j.*;
Podczas kompilacji za pomocą następującego polecenia pojawia się błąd:
c:JDKbinjavac.exe -cp ".;.liblog4j.jar" -d .classes -g .jmsexampleMyDemo.java
błąd: nie można znaleźć symbolu prywatny rejestrator końcowy;
Co jest źle w powyższym kodzie?
Ponadto zastanawiam się: * Czy nazwa pakietu jest powiązana ze ścieżką pliku? na przykład, umieszczam mój plik Java w jms / example, czy to jest powód, dla którego muszę nazwać pakiet jako jms.example?
Kiedy wyodrębniam inne dostarczone pliki jarprzez firmę zewnętrzną ścieżka do plików klas to jms / example, a przykładowy kod innej firmy używa jms.example jako nazwy pakietu i jest zgodny ze ścieżką klasy jms / example, czy muszą być spójne?
- Podczas wypakowywania pliku log4j.jar ścieżka do jego plików klas to org / apache / log4j /, więc powinienem użyć polecenia „import org.apache.log4j.", aby zaimportować klasy? Jeśli nadal używam jms.example jako nazwy pakietu, czy import doda go do ścieżki klasy, tzn. faktycznie stanie się jms.example.org.apache.log4j.?
Odpowiedzi:
1 dla odpowiedzi № 1Ścieżka nie może być ujęta w cudzysłów, tzn. Jest niepoprawna w poleceniu:
-cp ".;.liblog4j.jar"
Powinno być:
-cp .;.liblog4j.jar
0 dla odpowiedzi nr 2
Jeśli chodzi o pytanie:
Czy nazwa pakietu jest powiązana ze ścieżką pliku? na przykład, umieszczam mój plik Java w jms / example, czy to jest powód, dla którego muszę nazwać pakiet jako jms.example?
Nie, możesz użyć dowolnej nazwy pakietu, na przykład:
package yyyyjmsxxx.zzzzexamplexxx;