To jest naprawdę głupie pytanie, na które nie mogę precyzyjnie odpowiedzieć.jaka jest prawidłowa struktura wewnętrzna pliku JAR
Tło.
Używam Eclipse (z jedną z wtyczek ANT, na terminalu XP).
Właśnie zaczął grać z ANT, w [jar] Dyrektywa ja ustawiania położenia mojego gotowego pliku JAR i uzyskać następujące po I rozpakować 'Plik
META-INF/manifest. MF MyMainFile.class
, który jest zgodny z tym znalezionym na stronie internetowej Oracle dla wewnętrznej struktury. (tutaj http://docs.oracle.com/javase/tutorial/deployment/jar/view.html)
Ale kiedy próbuję uruchomić mój plik, otrzymuję błąd "nie znaleziono głównej klasy"?
Widziałem kilka innych stanowisk, gdzie ludzie 'rozpakowane' plik JAR i skończyło się ze strukturą następujących ...
META-INF/MANIFEST.MF dtvcontrol/DTVControlApp.class
(stąd http://www.coderanch.com/t/528312/java/java/standalone-application)
więc powinienem dostać strukturę gdzie moje pliki klasy są w katalogu, który odzwierciedla nazwę pakietu ... np
META-INF/MANIFEST.MF MyPackage/MyMainFile.class
A jeśli tak, dlaczego otrzymuję niepoprawną strukturę przy użyciu ANT lub dlaczego istnieją 2 różne "poprawne" struktury wewnętrzne? (jak określić główną klasę i ścieżkę klasy dla każdego/kontrolki, co otrzymuję)
Również w przypadku, gdy jesteś zainteresowany, w pliku MANIFEST stany (kompilacja przy użyciu ANT) [nazwa atrybutu = "Główna klasa" wartość = "MyPackage.MyMainFile" /]
również struktura katalogów pakietu w trakcie opracowywania jest następująca ...
/JavaDev/MyTestPackage/src (zawiera pliki źródłowe) // JavaDev/MyTestPackage/bin (zawiera pliki klas od zaćmienia lub z zadania ANT JAVAC, czy nazwałem je niepoprawnie? czy powinienem je nazwać kompilacją?)
Co więcej, kiedy tworzę słoik, nie nazywam go "MyTestPackage.jar", ale po prostu "test.jar" może to być przyczyną problemu? Zakładam, że nie tak, jakbym dobrze zrozumiał, o to chodzi w rzeczy samej [główna klasa].
nawiązaniu do tego wszystkiego ...
„MyTestPackage” jest właściwie mały błąd wizualny wiadomości biblioteki, który używam w innym miejscu, a ja mam drugi plik, który ma główną klasę używaną do testów. W związku z tym wskazuje na różne biblioteki (czy muszę skopiować wszystkie biblioteki SWT do określonego katalogu?)
Czytałem gdzieś, że jeśli załaduję biblioteki do mojej głównej klasy (co oczywiście zrobić, aby otworzyć okno), to próba uruchomienia programu zakończy się niepowodzeniem na "głównej klasy nie znaleziono", jeśli używam ich, sam jest także prawdziwe w przypadku dodawania jakichkolwiek "statycznych elementów końcowych" (których używam do logowania błędów).
Problem z "statycznym finałem" ... Próbowałem dostosować ścieżkę klas w ANT, i otrzymałem mnóstwo innych błędów dla połączenia z Log4J i moim "opakowaniem", którego używam (aby zrobić to z nieprawidłowy import), ale biblioteki istnieją tam, gdzie powinny być ustawione w ścieżce klas).
ja czuję się prawie tam .... ale nie całkiem ...
Robię to dla małych projektów „biblioteka”, które tworzę z zamiarem wykorzystania MAVAN na główną zewnętrzny pakiet, który połączy je wszystkie razem ... na razie jednak chciałbym to zrobić tak, jak to działa.
Mogę dostarczyć pełne źródło lub inne wymagane informacje.
góry dzięki ...
David
vikiiii Zamierzałem wprowadzić chytry komentarz pytając ile "oczu" masz ... ale zdecydowałeś się nie (zauważ 3 "." Nie jeden, nie dwa). ;) – DaveM