Eclipse Export z dodatkowymi bibliotekami.

0

Witam jedna z podobnych moich wiadomości usunięto do kosza. Z jakich powodów nie wiem jeśli już gdzieś jest proszę napisać gdzie jest odpowiedz na moje pytanie.

A mianowicie mam program korzystający z obiektowej bazy danych by to zrobić musiałem zainstalować dodatkowe biblioteki. I tu pojawia się problem program nie używający tych bibliotek po opcji exportu działa bez problemu. A program używający dodatkowe biblioteki ma problem.

Dostaje np. taki komunikat :

JAR creation failed. See details for additional information.
Resource is out of sync with the file system: /0031- Kalkulator_03.03.2008_zPlikuTXT_Kawalkowanie2/paleta.gif.
Resource is out of sync with the file system: /0031-Kalkulator_03.03.2008_zPlikuTXT_Kawalkowanie2/databasesUzytkownik.db4o.
Exported with compile warnings: /0031-Kalkulator_03.03.2008_zPlikuTXT_Kawalkowanie2/paczka_1/R9_Kalkulator.java
Exported with compile warnings: /0031-Kalkulator_03.03.2008_zPlikuTXT_Kawalkowanie2/paczka_1/Usuwanie_Guzika.java
Exported with compile warnings: /0031-Kalkulator_03.03.2008_zPlikuTXT_Kawalkowanie2/paczka_1/Dodanie_Uzytkownika.java
Exported with compile warnings: /0031-Kalkulator_03.03.2008_zPlikuTXT_Kawalkowanie2/paczka_1/Dodawanie_Guzika.java
Exported with compile warnings: /0031-Kalkulator_03.03.2008_zPlikuTXT_Kawalkowanie2/paczka_1/Guzik_z_Pliku.java
Resource is out of sync with the file system: /0031-Kalkulator_03.03.2008_zPlikuTXT_Kawalkowanie2/databasesGUZIKI.db4o.

Lub jeśli odznaczeń wszystkie dodatkowe pliki takie jak pliki bazy I gif. I zrobię by eksportował tylko pliki java to po stworzeniu pliku jar I kliknięciu na niego pokazuje się

Could not find the main clas. Program will exit

Jestem już bezsilny po tym jak moja wiadomość trafiła do kosza przeszukałem gogle forum Eclipse i To i nic nie mogę znaleźć odpowiedzi.

Bardzo proszę o pomoc bo mój program jest „uwięziony” wewnątrz Eclipsa……….

0

Na początek zrób clean projektu. wygląda na to że całość się rozsynchronizowała. Inna metoda to kompilacja z użyciem bibliotek i dołączenie ich później w katalogu lib i podlinkowanie w manifeście jara

0

Dziękuje za odpowiedz Koziołku.
Zrobiłem czyszczenie (Project - > Clean) jednak nie pomogło
A co do reszty twojej rady.

Inna metoda to kompilacja z użyciem bibliotek i dołączenie ich później w katalogu lib i podlinkowanie w manifeście jara

Mógłbyś jak byś znalazł chwile opisać mi to jaśniej. Bo niestety nie rozumiem. Nie znam jeszcze na tyle Javy i Eclipse [glowa]

0

Czy nikt nie ma pomysłu jak to zrobić?

Może źle opisałem problem. Program, który powoduje błąd w czasie exportu do jar. Używa obiektowej bazy danych.

Chodzi mi o to, że musiałem do projektu dodać dwa pliki jar będące bibliotekami do obsługi obiektowych baz danych. Może się motam, ale nie wiem jak to wyjaśnić i czy trzeba bardziej wyjaśniać. Inne programy mogę exportować te z użyciem tych bibliotek nie. A i program świetnie działa nie generuje żadnych błędów, jeśli go „odpalam” w środowisku Eclipse.

0

jesli robisz export do jara pod eclipsem - masz dwa wyjscia
1)rozpakujesz jara, edytujesz MANIFEST.MF, pakujesz jara (tu uwaga! musi to byc zip, bez kompresji i zawartosc folderu)
2)Dostarczasz eclipsowi plik manifestu.

w manifescie w nowej linii piszesz
Class-Path: moj-jar1.jar jakisjar-3.0.666.jar

PS. najlepiej to zrobic ANTem

pozdrawiam

0

dziekuje za odpowiedz.

0

user image

To struktura mojego programu. Jak wyeksportować to do pliku jar ?. Podpowiedz wyżej jest sensowa ale nie wiem jak to zrobić. Program jeśli to dobre słowo odpalam z R9_Kalkulator.java

0

Dodałem plik MANIFEST.MF w nim jest

Manifest-Version: 1.0
Sealed: true
Main-Class: paczka_1.R9_Kalkulator
Class-Path: Kalkulator3.jar db4o-6.4.14.8131-java5.jar
Class-Path: Kalkulator3.jar db4o-6.4.14.8131-nqopt.jar

Ale program nadal się nie uruchamia. ;/

0

bardzo ale to bardzo prosze o pomoc

0

Nie taki MANIFEST.FM!

Manifest-Version: 1.0
Sealed: true
Main-Class: paczka_1.R9_Kalkulator
Class-Path: Kalkulator3.jar db4o-6.4.14.8131-java5.jar
 db4o-6.4.14.8131-nqopt.jar

W ten sposób. Jeżeli nie mieścisz się w jednej linii w Class-Path to przechodzisz do kolejnej i zaczynasz ją od spacji.

0

Ok mam tak :
user image

w piku MANIFEST.MF mam tak :

Manifest-Version: 1.0
Sealed: true
Main-Class: paczka_1.R9_Kalkulator
Class-Path: Kalkulator3.jar db4o-6.4.14.8131-java5.jar
 db4o-6.4.14.8131-nqopt.jar

Folder z gotowym programem to :
Kalkulator3.jar
db4o-6.4.14.8131-nqopt.jar
db4o-6.4.14.8131-java5.jar
i nadal podwójne kliknięcie na Kalkulator3.jar nic nie powoduje. co robie źle ? ;/

0

Jeśli masz Windowsa, to zapewne jar jest skojarzony z programem javaw, który nie otwiera konsoli i nie widać komunikatów o błędach. Spróbuj wpisać polecenie: java -jar Kalkulator.jar
pozdrawiam

0

no i masa błędów :/

java -jar Kalkulator3.jar

Exception in thread "main" java.lang.NoClassDefFoundError: com/db4o/Db4o
        at paczka_1.SZYBAKalkularoa.wydrukB(R9_Kalkulator.java:644)
        at paczka_1.SZYBAKalkularoa.<init>(R9_Kalkulator.java:462)
        at paczka_1.RamkaKalkulatora.<init>(R9_Kalkulator.java:76)
        at paczka_1.R9_Kalkulator.main(R9_Kalkulator.java:64)
0

Z tą masą to przesadziłeś, błąd jest jeden. JVM nie znalazła klasy com/db4o/Db4o. Sprawdź czy ta klasa jest w jarach.
pozdrawiam

0

Ta klasa jest w jarach
db4o-6.4.14.8131-nqopt.jar
lub
db4o-6.4.14.8131-java5.jar
to są dołączone biblioteki, nie wiem jak je spakować razem. znaczy w jednym jar

0

class-a jest w pliku db4o-6.4.14.8131-java5.jar będący biblioteką. problem. jak ten jar dołączyć do mojego jar.

0

Nie wiem jak się robi manifest z kilkoma jarami. Ja do tej pory robiłem jednego jara.
Jary to zipy, możesz przemianować i sklejać jak ci wygodnie.
Nawet możesz tak uruchomić java -jar Kalkulator.zip

0

ja juz nie mam sił ;/ tego sie chyba nie da zrobić, no nic trzeba kupić książki jakieś

0

aż mi się nie chce wierzyć że nikt z was drodzy nie korzysta z bibliotek czy to dla baz obiektowych czy relacyjnych czy juz całkiem innych. nikt nie wie jak wyeksportować program do jar który używa biblioteki ?

0

Korzystamy i nie mamy problemów. Dołączenie jara do jara podaliśmy ci już w Class-Path. Sprawdź czy te jary się w ogóle ładują. IMO nie potrzebny jest ten wpis o Kalkulator.jar w Class-Path.

0

Jeśli kogoś uraziłem przepraszam ale pomyślałem że może cos od początku że robie.

A co do

„nie potrzebny jest ten wpis o Kalkulator.jar w Class-Path.”

Przedtem podpowiadaliście że ma być tak :

Manifest-Version: 1.0
Sealed: true
Main-Class: paczka_1.R9_Kalkulator
Class-Path: Kalkulator3.jar db4o-6.4.14.8131-java5.jar
 db4o-6.4.14.8131-nqopt.jar

To ja juz sam nie wiem ;/

I nawet jak zmienię na

Manifest-Version: 1.0
Sealed: true
Main-Class: paczka_1.R9_Kalkulator
Class-Path: db4o-6.4.14.8131-java5.jar
 db4o-6.4.14.8131-nqopt.jar

To nie pomaga ;/
A co do

„Sprawdź czy te jary się w ogóle ładują”

Tego nie wiem jak sprawdzić ale chyba jak by się załadowały to by działało.. sam już nie wiem….

0
  1. Wpis Kalkulator.jar w Class-Path: jest (IMO) obojętny - może być, może go nie być.
  2. Spróbuj jeszcze tak: skopiuj te biblioteki do katalogu JAVA_HOME\lib\ext
0

Udało się w połowie ;)

Jak uruchamiam pierwszy raz :

Java –jar Kalkulator.jar

To się ładnie uruchomi i daje dużo nadziejni;)

Ale jak tylko użyje program, tworzą się pliki bazy
databasesGUZIKI.db4o
databasesUzytkownik.db4o
Gdy dodam coś do bazy.

Zamknę program.

To przy ponownym uruchomieniu, dostaje komunikaty:

Exception in thread "main" java.lang.ClassCastException: paczka_1.GuzikidoBazy c
annot be cast to com.db4o.reflect.generic.GenericObject
at com.db4o.reflect.generic.GenericField.get(Unknown Source)
at com.db4o.internal.FieldMetadata.getOn(Unknown Source)
at com.db4o.internal.FieldMetadata.collectConstraints(Unknown Source)
at com.db4o.internal.ClassMetadata.collectConstraints(Unknown Source)
at com.db4o.internal.query.processor.QConObject.associateYapClass(Unknow
n Source)
at com.db4o.internal.query.processor.QConObject.<init>(Unknown Source)
at com.db4o.internal.query.processor.QQueryBase.addConstraint(Unknown So
urce)
at com.db4o.internal.query.processor.QQueryBase.constrain(Unknown Source
)
at com.db4o.internal.PartialObjectContainer.getInternal(Unknown Source)
at com.db4o.internal.PartialObjectContainer.get(Unknown Source)
at com.db4o.internal.ExternalObjectContainer.get(Unknown Source)
at paczka_1.SZYBAKalkularoa.wydrukB(R9_Kalkulator.java:653)
at paczka_1.SZYBAKalkularoa.<init>(R9_Kalkulator.java:462)
at paczka_1.RamkaKalkulatora.<init>(R9_Kalkulator.java:76)
at paczka_1.R9_Kalkulator.main(R9_Kalkulator.java:64)

nie wiem czemu się sypie dopiero jak ma użyć bazy…..

0

Widocznie przy niepustej bazie coś z niej odczytujesz i robisz nielegalne rzutowanie.
(zapewne w wierszu 653)

0

program odczytuje za pomoca

653. List<GuzikidoBazy> result=db.get(buforlate);

try {
			// 
				GuzikidoBazy buforlate=new GuzikidoBazy(null,null,null);
					List<GuzikidoBazy> result=db.get(buforlate);
					Iterator<GuzikidoBazy> j=result.iterator();
				
					while (j.hasNext()) {

						GuzikidoBazy t=j.next();
	System.out.println("Nazwa Stałej="+t.przynaleznosc+"Nazwa Stałej="+t.opis+" Wartość="+t.liczba);

	if(t.przynaleznosc.equals(uzytkownik.nazwaProfilu))
	{					
						dPP(t.przynaleznosc,t.opis,t.liczba,f,g);
						f++;
						iloscWbazie++;
						System.out.println("ILosc elementow w bazie ="+iloscWbazie);
						if (f % 6 == 0) {
							g++;
							f=0;
							//rozmiar.wysokosc=rozmiar.wysokosc+30;
						}

						{
							if (iloscWbazie % 5 ==0)
							{
							rozmiar.wysokosc=rozmiar.wysokosc+22;
							}
						}	
				}
	  }		
}
			finally {
//	Niezależnie od wszystkiego zamknij bazę danych.
				db.close();
			}

a co oznacza nielegalne rzutowanie. ???
to jest tylko czesc kodu

0

Prawdopodobnie prawa strona w poniższej instrukcji

List<GuzikidoBazy> result=db.get(buforlate);

zwraca listę obiektów, które nie są typu GuzikiDoBazy.

0

drobna uwaga:
po co dodawac liby do JAVA_HOME\lib\ext ?
Nie mozna zmusic usera naszego programu aby kopiowal gdzies jakies biblioteki.
jesli masz strukture taka:
/+
|-MojProgram
+
|-mojplik.jar
|-lib
+
|-biblioteka1.jar
|-biblioteka2.jar
to w pliku MANIFEST.MF dodajesz:
Class-Path: lib/biblioteka1.jar lib/biblioteka2.jar
i odpalasz:

cd MojProgram
java -jar mojplik.jar

pozdrawiam

0

Eximius napisał

drobna uwaga:
po co dodawac liby do JAVA_HOME\lib\ext ?

Zaproponowałem kopiowanie do JAVA_HOME\lib\ext bo zgodnie z tym co pisał @szalek twoja propozycja nie działa (chociaż powinna).
pozdrawiam

0

Tyle zabawy z tym Eclipse a projekt wrzucony do NetBeans IDE 6.0.1 działa elegancko. Nie ma problemu z exportem. Tyle co ja zauważyłem. Eclipse dodatkowe biblioteki wrzuca w inny folder jeśli chodzi o projekt. W NetBeans IDE 6.0.1 wszystkie biblioteki są w jednym I dlatego w czasie exportu nie ma problemu. Nie załatwia to problemu, ale jest to jakieś rozwiązanie, drastyczne bo zmiana środowiska, ale zawsze.

Pozdrawiam wszystkich i dziękuje za pomoc.

0

mozesz uzyc anta i zrobic z tego jarka, nastepnie odpalasz java -jar [plik.jar] [params]
http://4programmers.net/Java/FAQ/Jak_umie%C5%9Bci%C4%87_wszystkie_pliki_.class_mojego_programu_w_jednym_pliku_.jara

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