2012-04-21 11 views
6

Mam projektu pracuję nad i wszystko szło dobrze aż do dzisiaj. Mam blisko 6000 linii kodu w jednym dokumencie klasy java. Jeśli spróbuję dodać do kodu jeszcze jedną klauzulę IF, program zgłasza wyjątek podczas wywoływania klasy. Wszystkie dodatkowe fragmenty, które próbowałem umieścić w klasie, powodują niepowodzenie klasy po jej wywołaniu. Próbowałem dodać kod testowy, o którym wiem, że działa dobrze, i wszystkie rzucają okno dialogowe wymuszania zamknięcia. Zaufaj mi, że nie ma nic złego w ostatnim fragmencie, który próbuję umieścić w klasie. Po wyjęciu ostatniego fragmentu "Jeśli", nie ma błędów. Czy ktoś kiedyś to widział? Wyjątek jest generowany w emulatorze, gdy klasa jest wywoływana. Dostaję okno ostrzeżenia o przymknięciu sił. Oto rozmiar pliku Java: 172 503 bajtów Z góry dziękuję!Czy istnieje limit liczby linii kodu można umieścić w java Eclipse doument

+1

* „... program zgłasza wyjątek, gdy klasa nazywa się on” *. Jaki wyjątek? Gdzie jest zgłaszany wyjątek? Według Eclipse? W uruchomionym programie? Co masz na myśli przez "wezwany"? –

+2

Być może używasz limitu rozmiaru metody 64 kb (bajtode). http://stackoverflow.com/questions/107855/is-there-any-no-of-lines-code-limit-for-a-java-class i http://stackoverflow.com/questions/5689798/why- ma-Java granica-the size-of-a-metody-to-65535-bYTE http://stackoverflow.com/questions/6570343/maximum-size-of-a-method-in-java –

+7

że powinny Zwróć uwagę, że klasa z 6000 linii kodu wskazuje na ** NAPRAWDĘ ** zły projekt. Jeśli zmodyfikujesz/modularyzujesz swój kod na coś bardziej sensownego, problem powinien zniknąć. –

Odpowiedz

3

Wpadłem na ten problem jakiś czas temu i okazało się, że nie ma problemu, aby mieć 50k linii i więcej kodu w jednym klasy, o ile nie zostanie przekroczony limit metody.

W zależności od tego, co znajduje się w jednej metody, które rzeczywiście powodują rozmiaru kodu bajtowego ja doświadczyłem ograniczeń między 2-3k linii kodu/metody.

dodania:

nawiasem mówiąc w pewnym momencie w rzeczywistości Eclipse wywala gdy całkowity kod staje się zbyt duża, aby skompilować - wystarczy zwiększyć pamięć Eclipse do 1 Gb lub tak. Tak daleko, że było wystarczająco dużo dla moich projektów mających około 100k linie w łącznej ...

+0

Podniosłem metodę i przekierowałem inne klasy, aby znaleźć kawałki, działa jak urok. Przekroczono rozmiar metody. Ten kosztował mnie cały dzień. Ale co to jest dzień z życia i tak warto LOL – lastshadowrider

+0

@lastshadowrider Po prostu ciekawy, ile linii miała twoja metoda, aby się zawiesić? – blessenm

+0

około 5,980 linii, zanim się zawiesił. Myślałem, że po prostu dodam do metody, bo wszystko działa dobrze. A potem boom. – lastshadowrider

1

zauważyłem tego wcześniej, Eclipse ucieka od samego Java, więc jest bardzo intensywny RAM, jeśli masz zbyt dużo kodu tak, że potrzebuje więcej niż można przydzielonej załamie.

+3

Ile kosztuje za dużo? Cała apk ma tylko 512kb. – lastshadowrider

4

można zmodyfikować te same pomocą następujących ustawień:

--launcher.XXMaxPermSize 
256m 
--launcher.defaultAction 
openFile 
-vmargs 
-Dosgi.requiredJavaVersion=1.5 
-Xms40m 
-Xmx512m 
+0

gdzie mogę umieścić te wyciągi? – lastshadowrider

+0

Otwórz plik eclipse.ini i zmień ustawienia – Satya

+0

Dzięki za pomoc Satya – lastshadowrider

1

Czy istnieje limit liczby linii kodu można umieścić w java doument Eclipse.

Niezupełnie.

Istnieją ograniczenia co do liczby bajtów w skompilowanej metodzie i innych tego typu rzeczach, ale są one narzucane przez format zbioru klas Java (tj. Specyfikację JVM), a nie przez Eclipse.

Jest również możliwe, że Eclipse potrzebuje więcej pamięci, ale nie sądzę, że dodanie pojedynczej instrukcji if niezawodnie ją uruchomi. (A jeśli tak, to wyjątek powiedziałby ci, że zabrakło ci pamięci ...)

Powiązane problemy