problem z classpath ?

0

Cześć! Zainstalowałem JDK 6 Update 25 oraz Netbeans 7.0. Do zmiennej środowiskowej Path dodałem także odpowiednią ścieżkę tzn. "C:\Program Files\Java\jdk1.6.0_25\bin". Jeśli chodzi o zmienną CLASSPATH to na liście zmiennych jej nie było, więc dodałem CLASSPATH z domyslną wartością ".". Kiedy kompiluję i uruchamiam poprzez konsolę wszystko jest ok, np: javac HelloWorld.java a potem java HelloWorld. Jednak zamierzam korzystać oczywiście z Netbeans. W Netbeans moje programy kompilują się i uruchamiają. Kiedy jednak z zewnątrz wchodzę do folderu NetbeansProjects/NazwaProjektu/dist/ i chcę uruchomić MójProjekt.jar to nie ma żadnej reakcji, nic się nie dzieje. Ta sama próba uruchomienia pliku MójProjekt.jar z konsoli, czyli java MójProjekt zwraca błąd java.lang.NoClassDefFoundError. Domyślam się, że błąd jest związany z ClassPath, tzn jest problem z odnalezieniem tego projektu. Sytuacja zdziwiła mnie dlatego, że kiedyś jak korzystałem jeszcze z Netbeans 6.7.1 to taki problem nie występował. Mogłem wejść do folderu dist i uruchomić projekt poprzez MójProjekt.jar, w konsoli też wszystko było ok. Jak rozwiązać ten problem ?

0

Jeśli chcesz odpalic program spakowany do jara to polecenie to
java -jar MójProjekt.jar

a nie
java MójProjekt

0

Ok, a co z drugim problemem ? Tzn jak wchodzę do dist i klikam w MójProjekt.jar to nic się nie dzieje (tzn na chwilę pojawia się okienko konsoli, ale momentalnie znika i nawet nie wiadomo co tam było napisane. Jak miałem NetBeansa 6.7.1 to takiego problemu nie było, program wtedy normalnie się uruchamiał.

0

W takim przypadku należy otworzyć konsolę, odpalić "java -jar MójProjekt.jar" i zobaczyć, jaki dokładnienkomunikat błędu się wyświetla. Dodatkowe pytanie: czy twój projekt pod Netbeansem nie zależał od zewnętrznych bibliotek (np. log4j, jakichś jarów z JEE,)? Może tego mu teraz brakuje?

0

Mój projekt nie zależy od niczego poza JDK, to zwykłe Hello World. Z konsoli poleceniem java -jar MójProjekt.jar mogę odpalić mój projekt.

0

Musisz w systemie skojarzyc pliki jar z java -jar.

0

Pliki jar są otwierane za pomocą java.exe (C:\Program Files\Java\jdk1.6.0_25\bin\java.exe). Wcześniej to działało prawidłowo, więc kompletnie nie rozumiem o co teraz chodzi. Jak mam skojarzyć pliki jar z java -jar ?

0

Domyślnie w windows pliki jar są skojarzone z poleceniem javaw (a nie java), polecenie javaw nie otwiera konsoli, jest przeznaczone dla programów z gui.
W XP Mój komputer => Narzędia => Opcje folderów => Typy plików.

0

Przecież napisałem wyżej, że są skojarzone z java.exe a nie javaw.exe. Programu z GUI zrobionym w Swingu też nie mogę odpalić.

0

Jak mam skojarzyć pliki jar z java -jar ?

Z tego pytania wynika niby, że pliki jar są skojarzone z poleceniem java?

0

Z tego: Pliki jar są otwierane za pomocą java.exe (C:\Program Files\Java\jdk1.6.0_25\bin\java.exe). Zadałem to pytanie trochę retorycznie bo już mam tą czynność wykonaną i dalej nie działa ...

0

To może po kolei, kiedy działa, kiedy nie działa.

  • w konsoli wpisujesz java -jar MojProjekt.jar, działa?
  • w eksploratorze klikasz w plik MojProjekt.jar, działą?
  • w NetBeans klikasz w plik MojProjekt.jar, działa?
0

Czy w oknie Opcje Folderów->Typy plików masz ustawione dla Jara takie coś?

w oknie Zaawansowane, typ Akcji: open, klikasz Edit i czy jest tam taka linia:
"Twoja_ścieżka_do_javy\javaw.exe" -jar "%1" %*

Bez czegoś takiego dwuklik na jarze odpali tylko
java.exe TwójJar i program się nie odpali.

0

No przecie napisolem to we pierszym mojim poscie.

0

Prawda, ale autor twierdzi, że są skojarzone. Poza tym propozycja Tomka2 jest niedobra, on chce skojarzyć jary z programem javaw.

0
  1. W Netbeans programy się uruchamiają.
  2. Z konsoli polecenie java -jar MojProjekt.jar uruchamia program.
  3. Nie działa tylko odpalenie programu poprzez dwukrotne kliknięcie w MójProjekt.jar.

W opcje folderów/typy plików jest ustawione dla pliku JAR otwieranie za pomocą C:\Program Files\Java\jdk1.6.0_25\bin\java.exe. W zmiennej środowiskowej Path jest taka ścieżka: "C:\Program Files\Java\jdk1.6.0_25\bin". Mam zmodyfikować tą ścieżkę na taką : "C:\Program Files\Java\jdk1.6.0_25\bin\javaw.exe" -jar "%1" %*" ???

"Propozycja Tomka2 jest niedobra" ?

0

Ja zawsze z tego co pamietam mialem po prostu '<sciezka do="do" bin="bin">\javaw.exe -jar' i nie pamietam zadnych problemow.
Jak mowi bo, javaw.exe to jepsze rozwiazanie bo nie pokazule konsoli, poza tym nie rozni sie niczym.

0

"Propozycja Tomka2 jest niedobra" ?

Jest niedobra jeżeli chcesz uruchamiać programy konsolowe, javaw nie otworzy konsoli i nic nie zobaczysz.

0

Ok, w Path ścieżkę mam ustawioną na "C:\Program Files\Java\jdk1.6.0_25\bin\javaw.exe -jar"
W opcje folderów\typy plików jest ustawione otwieranie za pomocą "C:\Program Files\Java\jdk1.6.0_25\bin\javaw.exe"

Niestety dalej kliknięcie w jara powoduje tylko mignięcie konsoli i program się nie odpala.

0

Ty starasz się chociaż zrozumieć odpowiedzi? javaw nie otwiera konsoli.

0

Ok, w Path ścieżkę mam ustawioną na "C:\Program Files\Java\jdk1.6.0_25\bin\javaw.exe -jar"
W opcje folderów\typy plików jest ustawione otwieranie za pomocą "C:\Program Files\Java\jdk1.6.0_25\bin\javaw.exe"

Niestety dalej kliknięcie w jara powoduje tylko mignięcie konsoli i program się nie odpala.

PATH zmień na "C:\Program Files\Java\jdk1.6.0_25\bin"
"Typy plików jest ok". Moja uwaga była tylko do tego, aby w oknie Zaawansowane, dla akcji "Open" były dodane parametry " -jar "%1" %*" za samą ściezką do "java.exe" lub "javaw.exe". Dla pewności lepiej zostaw "java.exe"

A tak w ogóle to czy twój program pobiera z klawiatury jakiś znak zanim się zakończy? Bo jeśli nie, to taki będzie efekt - uruchomi się na moment konsola, wyświetli "Hello world" i się zamknie.

0

Dodam jeszcze że w typach plików jak dałem przywróć w zaawansowane/edytuj jest "C:\Program Files\Java\jre6\bin\javaw.exe" -jar "%1" %* , ale dalej nie działa

Wiem, że javaw nie otwiera konsoli , ale ja teraz nie mogę otworzyć programu z GUI swinga.

Ustawienia:

W Path "C:\Program Files\Java\jdk1.6.0_25\bin"
W typach plików otwierania za pomocą: "C:\Program Files\Java\jdk1.6.0_25\bin\java.exe"

Program z GUI w Swingu. Odpalenie poprzez kliknięcie na MójProjekt.jar nie działa.

0

Dodam jeszcze że w typach plików jak dałem przywróć w zaawansowane/edytuj jest "C:\Program Files\Java\jre6\bin\javaw.exe" -jar "%1" %* , ale dalej nie działa

To jeszcze sprawdź czy takie samo ustawienie masz w "Zaawnsowane/Otwórz", bo to jest akcja odpalana przy dwukliku.

0

Jak wchodzę w typy plików , to przy JAR mam przywróć , jak to kliknę i wejdę na zaawansowane to jest wtedy w edit ścieżka: "C:\Program Files\Java\jre6\bin\javaw.exe" -jar "%1" %*

0

Teraz zauważyłem, że po tych zmianach jak chce odpalić mój projekt (swingowy) z konsoli poleceniem java -jar Mójprojekt.jar , to dostaje błąd typu java.lang.UnsatisfiedLinkError

0

Thrown if the Java Virtual Machine cannot find an appropriate native-language definition of a method declared native.

I mówisz, że Ci się to trafiło w programach typu Hello Word?

0

Bo to bylo 'Hello, world' z uzyciem OSGi plus natywne biblioteki pisane w brainfucku. Postawil 'server' ktory mapuje pamiec, 'klient' rowniez ja mapuje i w ten sposob odczytuje string z powitaniem. Oczywiscie szyfrowanie po drodze (wlasnoreczna implementacja blowjoba ... blowfisha). Server i klient napisane oczywiscie z uzyciem wszystkich wzorcow projektowych i z uzyciem DI.
To wszystko juz jest, brakuje tylko skonfigurowania windowsa aby uruchamial jara na dwuklik...

0

Myślę, że takie drwiące wypowiedzi jak wyżej są zbyteczne. Trochę kultury nie zaszkodzi. Przyznaję - niezbyt precyzyjnie opisywałem problem, ale to nie jest powód do pisania takich postów.

Na początku pisałem o programie Hello world (konsolowym), później próbowałem uruchomić zwykły okienkowy program w swingu i to niego dotyczyły te błędy odnośnie bibliotek. W każdym razie po rozwiązaniu problemu z bibliotekami wyszło na to, że problem z uruchomieniem aplikacji okienkowej poprzez dwukrotne kliknięcie w nią był związany z ścieżką w otwórz za pomocą, która prowadziła do "C:\Program Files\Java\jdk1.6.0_25\bin\java.exe" ,a powinna wyglądać tak: "C:\Program Files\Java\jre6\bin\javaw.exe" -jar "%1" %*

0

Na kpiny sobie zasłużyłeś. W pierwszym poście (Tomek2) dostałeś odpowiedź. Potem tylko kręciłeś, motałeś i wprowadzałeś w błąd.

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