🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #153840

Re: Eclipse nie zwalnia pamięci po aplikacji

#153840
From: Arivald
Date: Mon, 26 Aug 2013 06:14
55 lines
2937 bytes
W dniu 2013-08-26 07:12, Borneq pisze:
> Użytkownik "Arivald" <NOSPAMarivald@interia.pl> napisał w wiadomości
> news:kvelab$sh9$1@news.dialog.net.pl...
>> A po czwarte czemu uruchamiasz program ręcznie?
>> Na toolbarze masz ikonkę do uruchamiania aplikacji (zielone kółko z
>
> Uruchamiam z Eclipse, Eclipse wywołuje javaw.exe. Przekierowuje konsolę
> do Eclipse; java.exe tworzy konsolę mimo że nie używam
> System.out.println(msg)
>
>> Po trzecie najprawdopodobniej nie kończysz programu skoro JVM ciągle
>> pozostaje w pamięci.
>
> Gdy po zakończeniu nacisnę czerwony przycisk, który jest w oknie konsoli
> to kończy i jest ok, ale nie można zapomnieć a zwykłem kończyć tylko
> przez zamknięcie formy głownej
>

Dokładnie. W trybie debugowania zobaczysz że w Twoim programie nadal są 
działające wątki, i one trzymają otwarty JVM.

>> Po drugie to 20 mega to nie twój program, a JVM.
>
> Czy można tak zrobić że działa tylko jeden JVM, a  systemie wiele
> programów jawowych?
>

Można, w sensie że ładujesz klasy innych aplikacji do wątkó i wołasz ich 
main. Tylko po co? Oszczędzić te 20 MB ramu?

>> Po pierwsze użyj "javaw" jak nie używasz konsoli. "java" alokuje
>> konsolę, "javaw" nie.
>
> Aha, dlatego, zawsze była konsola dla java.exe. Ale javaw mimo braku
> konsoli coś trzyma w pamięci, gdy wołam javaw.exe, nie mogę skończyć
> programu, jedynie mogę skończyć program, gdy wołam go z Eclipse i
> nacisnę odpowiedni przycisk po zamknięciu programu.
>

Na początek ustaw dla JFrame

setDefaultCloseOperation(EXIT_ON_CLOSE);

lub jeśli masz więcej okien to

setDefaultCloseOperation(DISPOSE_ON_CLOSE);


A jak startujesz osobne wątki, to trzeba poczekać na ich zakończenie, 
lub (gorsze rozwiązanie) ubić.

Ostatecznie możesz użyć System.exit(), ale nie polecam.

-- 
Arivald
Technical Details
Message-ID: <kversv$v8h$1@news.dialog.net.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
References: <kvegp4$nt$1@node1.news.atman.pl> <kvelab$sh9$1@news.dialog.net.pl> <kveo3h$6u5$1@node1.news.atman.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
From: Arivald <NOSPAMarivald@interia.pl>
Newsgroups: pl.comp.lang.java
Subject: Re: Eclipse nie zwalnia pamięci po aplikacji
Date: Mon, 26 Aug 2013 08:14:07 +0200
Organization: Dialog Net
Lines: 56
Message-ID: <kversv$v8h$1@news.dialog.net.pl>
References: <kvegp4$nt$1@node1.news.atman.pl> <kvelab$sh9$1@news.dialog.net.pl> <kveo3h$6u5$1@node1.news.atman.pl>
NNTP-Posting-Host: dynamic-78-8-108-245.ssp.dialog.net.pl
Mime-Version: 1.0
X-Trace: news.dialog.net.pl 1377497823 32017 78.8.108.245 (26 Aug 2013 06:17:03 GMT)
X-Complaints-To: abuse@dialog.net.pl
NNTP-Posting-Date: Mon, 26 Aug 2013 06:17:03 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Thunderbird/23.0
In-Reply-To: <kveo3h$6u5$1@node1.news.atman.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit