|
Krzysiek - 31 Lip 2007, 16:19 Witam Mam problem z classpath. Dlatego też będę miał kilka pytań i próśb. 1. Czy możecie mi polecić jakiś dobry tutorial w którym przykłady, nie 2. Tutaj opiszę jakie rozwiązanie mam (ale nie jest ono eleganckie, ani Przy czym myClass3 jest moją Main-Class ( w manifeście mam: Moje klasy korzystają z zewnętrznych jar-ów: Aby wszystko działało (za radą kolegi) rozpakowałem wszystkie jar-y do 3. Nie działała mi taka sytuacja. Exception in thread "main" java.lang.NoClassDefFoundError: mimo, że ta klasa jest w fop.jar (i nie sprawiała problemów gdy 4. To chciałbym osiągnąć: Ze swoich pakietów chciał bym zbudować mójJar.jar. Ze swojego jar-a i Będę wdzięczny za każdą pomoc. Krzysiek Karol - 31 Lip 2007, 16:43 Witam Mam problem z classpath. Dlatego też będę miał kilka pytań i próśb. Aby wszystko działało (za radą kolegi) rozpakowałem wszystkie jar-y do ło matko ;-) nie lepiej wrzucić biblioteki do katalogu np lib a w manifeście umieścić: rozwiązanie jest eleganckie, zalecane i w ogóle świetne :-) 3. Nie działała mi taka sytuacja. Ze swoich pakietów zbudowałem jar-a (mójJar.jar) z Main-Class: package2/myClass3.class i umieszczam go w katalogu, gdzie mam wymienione wyżej jar-y. Próbuję uruchomić mojego jar-a i dostaję błąd: Exception in thread "main" java.lang.NoClassDefFoundError: java -cp xml-apis-1.3.02.jar:xmlgraphics-commons-1.1.jar -jar mójJar.jar 4. To chciałbym osiągnąć: Ze swoich pakietów chciał bym zbudować mójJar.jar. Ze swojego jar-a i jeszcze raz powtórzę - ŁO MATKO proponuję rozwiązanie z Class-Path: martwisz się wtedy tylko o swojego jara i oto, żeby w lib leżały właściwe jary, z całości robisz instalator albo pakujesz jakimś pakerem i po problemie zywy - 31 Lip 2007, 17:16 | Aby wszystko działało (za radą kolegi) rozpakowałem wszystkie jar-y do | katalogu, gdzie mam już swoje pakiety. Z tego buduję jara, uruchamiam i | działa. ło matko ;-) ee.. tez tak robilem binary distribution i nie bolalo ;-P | 4. To chciałbym osiągnąć: | Ze swoich pakietów chciał bym zbudować mójJar.jar. Ze swojego jar-a i porzebowalbys specjalny classloader - z tego co wiem zwykly nei znajdzie ci klas w zagniezdzonym jarze, ale zaloze sie, ze nie o to tu chodzi :) generalnie masz jednego jara -prostsyz skrypt do uruchmoenia, wiecej jarow -wiecej mykow wymaganych z ustawianiem classpath zywy - 31 Lip 2007, 17:40 | Ze swoich pakietów chciał bym zbudować mójJar.jar. Ze swojego jar-a i | wymienionych wyżej zewnętrznych jarów zbudować jeden duży jar, który | jako Entry Point będzie miał ustawioną klasę package2/myClass3.class | (nie wiem czy tak się da). z teg oco widze http://one-jar.sourceforge.net/ uzywa wlasnie wlasnego classloadera, zeby osiagnac to o co pytasz Pzdr. oczek - 1 Sie 2007, 02:46 ee.. tez tak robilem binary distribution i nie bolalo ;-P porzebowalbys specjalny classloader - z tego co wiem zwykly nei pozostaje jeszcze temat obostrzeń licencyjnych, wielu twórców bibliotek zastrzega że mogą one być rozpowszechniane w takiej formie w jakiej zostały przez nich udostępnione, a nie rozpakowane i przepakowane do innego jara Piotr Kobzda - 1 Sie 2007, 04:11 | Exception in thread "main" java.lang.NoClassDefFoundError: | org/apache/fop/apps/FOPException java -cp xml-apis-1.3.02.jar:xmlgraphics-commons-1.1.jar -jar mójJar.jar To nie zadziała. Cytat odnośnie opcji -jar: "When you use this option, the JAR file is the source of all user http://java.sun.com/javase/6/docs/technotes/tools/windows/java.html#-jar Do OP: Jest sporo narzędzi do robienia tego co chcesz osiągnąć (fatjar, onejar, Podobnie jednak jak inni tu uważam, że jeśli tylko nie masz specjalnych http://java.sun.com/docs/books/tutorial/deployment/jar/ Warto też zajrzeć tam: http://mindprod.com/jgloss/jar.html piotr Krzysiek - 1 Sie 2007, 04:37 Dzięki za odpowiedź. Przeprowadziłem próby twoich rozwiązań. Efekty poniżej. | Witam | Mam problem z classpath. Dlatego też będę miał kilka pytań i próśb. [ ... ] | Aby wszystko działało (za radą kolegi) rozpakowałem wszystkie jar-y nie lepiej wrzucić biblioteki do katalogu np lib a w manifeście rozwiązanie jest eleganckie, zalecane i w ogóle świetne :-) NB robi Zrobiłem tak: w katalogu abc założyłem katalog lib i tam wrzuciłem wszystkie obce jar. Do katalogu abc dodatkowo skopiowałem moje pakiety i zrobiłem katalog META-INF a w nim plik MANIFEST.MF o zawartości: Manifest-Version: 1.0 zawartość katalogu abc spakowałem do pliku mojJar.jar i wywołałem: java -jar mojJar.jar Rezultat jest taki: | 3. Nie działała mi taka sytuacja. Ze swoich pakietów zbudowałem | jar-a (mójJar.jar) z Main-Class: package2/myClass3.class i | umieszczam go w katalogu, gdzie mam wymienione wyżej jar-y. Próbuję | uruchomić mojego jar-a i dostaję błąd: | Exception in thread "main" java.lang.NoClassDefFoundError: java -cp xml-apis-1.3.02.jar:xmlgraphics-commons-1.1.jar -jar W katalogu z moim jarem i z zewnętrznymi jarami wywołałem: java -cp Efekt: Exception in thread "main" java.lang.NoClassDefFoundError: Zastanawiam się czy fop.jar jest w porządku skoro otrzymuję takie błędy. Krzysiek - 1 Sie 2007, 04:42 java -cp avalon-framework-4.2.0.jar:fop.jar:batik-all-1.6.jar:commons-io-1.1.jar:commons-logging-1.0.4.jar:fop-hyph.jar:myUtility.jar:serializer-2.7.0.jar:sqljdbc.jar:xalan-2.7.0.jar:xercesImpl-2.7.1.jar:xercesImpl.jar:xml-apis-1.3.02.jar:xmlgraphics-commons-1.1.jar -jar mojJar.jar Próbowałem też ze średnikami jako znakiem rozdzielającym jary: java -cp Szarak - 1 Sie 2007, 04:48 w katalogu abc założyłem katalog lib i tam wrzuciłem wszystkie obce jar. Do katalogu abc dodatkowo skopiowałem moje pakiety i zrobiłem katalog META-INF a w nim plik MANIFEST.MF o zawartości: W katalogu abc masz mieć tylko swojego jara z odpowiednim manifestem i katalog lib z obcymi jarami. To nie ma być spakowane do jednego jara. Pozdrawiam Piotr Kobzda - 1 Sie 2007, 04:55 Zrobiłem tak: w katalogu abc założyłem katalog lib i tam wrzuciłem wszystkie obce jar. Do katalogu abc dodatkowo skopiowałem moje pakiety i zrobiłem katalog META-INF a w nim plik MANIFEST.MF o zawartości: Manifest-Version: 1.0 Skoro wrzuciłeś to wszystko do lib, to i opowiedz o tym Javie -- dodanie 'lib/' przed każdą nazwą jara powinno pomóc. piotr Krzysiek - 1 Sie 2007, 05:56 | Zrobiłem tak: | Manifest-Version: 1.0 Skoro wrzuciłeś to wszystko do lib, to i opowiedz o tym Javie -- dodanie piotr Faktycznie nie dodałem 'lib/'. Teraz działa. Dziękuję wszystkim za zainteresowanie i pomoc. String line; if (line=="cos"){...}....problem StringBuffer to String - problem z czasem konwersji problem z typem generycznym w tablicy Vector<String>[] data = new Vector[n]; Ciekawe pytanie o kolory |