2009-07-27 12 views
8

Mam dwie wojny, foo.war i bar.war. foo używa klas z paska. Próbuję uruchomić foo i dodać do classpath bar.war języka Java, ale java zgłasza wyjątek ClassNotFoundException.Dodawanie WAR do ścieżki klasy Java

Jeśli zmieniam nazwę bar.war na bar.jar i edytuję jej strukturę katalogów tak, aby wyglądała jak słoik, działa.

dokumentacji Javy na przełączniku Cp nie wspomina plików War:

-classpath <class search path of directories and zip/jar files> 
       A ; separated list of directories, JAR archives, 
       and ZIP archives to search for class files. 
+0

Mam podobny problem - mam tuziny słoików i tuziny plików konfiguracyjnych, które wpadają na wojnę i chciałbym móc uruchomić świetny skrypt wykorzystując to jako moją "Classpath" i mieć wszystko po prostu pracuj. Zawsze istnieją alternatywy, ale byłby to najbardziej elastyczny sposób i prawdopodobnie zaoszczędziłby mi dni pracy ... No cóż, do następnego rozwiązania. +1 na pytanie - zaoszczędziłem mi trochę czasu. –

Odpowiedz

15

Pliki WAR mają być całymi aplikacjami internetowymi, a nie bibliotekami. One zawierają biblioteki, ale same w sobie są aplikacjami.

Jedna aplikacja internetowa nie powinna zależeć od innej aplikacji. Mogą one zależeć od tych samych bibliotek, ale nie od siebie nawzajem.

Zasadniczo wyodrębnij wspólną funkcjonalność, ustaw ją jako bibliotekę (jako plik jar) i dołącz ten plik JAR do obu plików WAR lub dodaj do wspólnej części ścieżki klasy.

+0

Próbowałem uniknąć jeszcze - innego projektu na naszej rosnącej liście projektów. No cóż. – ripper234

0

Struktura pliku wojny jest bardzo różny następnie słoik tak to nie działa. Pliki klasy Java są przechowywane w katalogu klas WAR, podczas gdy Jar ma bezpośrednio pliki klas Java. Dlaczego nie dodasz folderu, w którym masz pliki klas Java z bar.war?

Co próbujesz osiągnąć?