Biblioteka bez package

0

Siema!

Załóżmy ze mam bibliotekę bib.jar a w niej od razu jxp.class (bez package) i nie wiem co wpisać żeby ją zaimportować. Próbowałem: [code]import jxp; i pokazywało błąd. Proszę o pomoc.

0

zdaje mi sie ze nie musisz nic importowac :)

0
  1. Nigdy nie powinno się tworzyć klas bez pakietu
  2. Jeżeli klasa jest bez pakietu, to mogą z niej skorzystać tylko klasy, które też nie mają pakietu. Czyli w swoim projekcie musiałbyś wszystkie klasy mieć bez pakietów, aby użyć tamtej biblioteki.
0

Niestety nie działa :(

0

ale czy możliwe jest zrobienie biblioteki bez pakietu z której możne korzystać program ?

0

Tak może, ale jest jeden warunek - Twoje klasy też nie mogą być w pakietach.

0

hmm..zrobienie-nie no po to są pakiety by z nich korzystać. A jak chcesz użyć klasy z jara bez pakietu to wyciągnij klase z jara i wsadz ją do swoich skompilowanych klas (ta klasa która będzie używac tej bibliotecznej klasy oczywiście też musi być bez pakietu). Trochę to durne ale zadziała.

0

Nic nie trzeba wyciągać z jara. Wystarczy dodać tego jara do classpath.

Niestety nie wystarczy zmienić tylko klas, które bezpośrednio korzystają z tej biblioteki.
Jeżeli klasa A z naszego projektu korzysta z tego jara, to A nie może mieć pakietu.
Jeżeli klasa B korzysta z A, to B też nie może być w pakiecie.
itd.

Efekt jest taki, że cały projekt nie może mieć pakietów.

--

EDIT:

Można ten problem obejść stosując refleksję.
W tym przypadku nie musimy nic importować z tej biblioteki (tylko musi być w classpath)

Class c = Class.forName("A"); //klasa bez pakietu
Object o = c.newInstance();
Method m = c.getMethod("a");
m.invoke(o);
0

hehe dokładnie mi to samo się nasunęło rano - CustomClassLoader rozwiąże Ci problem.

0

user image

Jak widzicie klasa Klasa.class nie ma package i znajduje się w bibliotece która dodałem w netBeans

i teraz co mam wpisać w klasie Main.class żeby załadować klasę Klasa.class

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