Article View: pl.comp.lang.java
Article #154211Re: Jak wywoływać programy w Javie ?
From: Pit
Date: Mon, 13 Jul 2015 00:49
Date: Mon, 13 Jul 2015 00:49
46 lines
3451 bytes
3451 bytes
Dnia 12.07.2015 Borneq <borneq@antyspam.hidden.pl> napisał/a: > Eksportuję program do jara. Jest napisany z użyciem SWT, więc eksportuje > wszystko. Czy można wybrać tylko używane klasy/metody? To że ty korzystasz tylko z klas X i Y oraz metod powiedzmy X.a i Y.b nie oznacza, że te metody wewnętrznie nie korzystają z innych klas/metod. Nawet na poziomie kompilacji może być problem z określeniem wszystkich potrzebnych klas, bo te moga być ładowane dynamicznie w trakcie działania programu (Java ma pod tym względem wiele mechanizmów, można na przykład w trakcie działania programu załadować klasy/obiekty nie tylko z pliku na dysku, ale też z działającej innej maszyny wirtualnej czy przez internet - nie wiem czy SWT z tego korzysta, bo nie używam, ale generalnie biblioteki załączam w całości). > A może lepiej jeden STW.jar dla wszystkich, które go używają? Można jar wewnątrz jar-a (definiując odpowiednio classpath w manifeście) a można bibliotekę załączyć do jar-a "rozpakowaną" (wtedy może być więcej zabawy z manifestem, bo generalnie każda biblioteka *.jar ma swój manifest i swoje ustawienia). > Następny problem: trzeba wołać: java -jar moja_aplikacja.jar > pomaga napisanie .bat czy .cmd, jednak jest kłopot: gdy wołam zostaje > czarna konsola na ekranie, co gorsza - nie zamyka się po ukończeniu > programu! Jeśli nie zamyka się po zakończeniu programu, to znaczy, że... program się nie kończy, a jedynie zamykasz okienko programu (maszyna wirtualna chodzi dalej). Na pewno prawidłowo obsługujesz kliknięcie w "krzyżyk" głównego okienka programu? Sprawdź w procesach :D Robienie "exeka" spowoduje, że stracisz jedną z zalet Javy - przenośność (taki plik *.exe nie będzie już działał na Mac-u czy pod Linuxem bez dodatkowych zabiegów). Ja w Windowsie "mapuję" pliki *.jar z programem javaw i okienko tekstowe w ogóle się nie pojawia ale do testów oczywiście używam "tekstowej" wersji przy tworzeniu programu, bo często wyrzucam na konsolę różne informacje diagnostyczne pomocne przy szukaniu błędów. > Czy więc nie lepiej napisać callera jako execa jak eclipse.exe ? Choć i > tak jest duży (326 kilo) jak na programik, który tylko woła inny program. Jeśli to ma być tylko na Windowsa, to można, ale większość zwykłuch userów ma zainstalowane tylko JRE a ono pod Windowsem domyślnie ustawia obsługę plików *.jar przez program javaw, więc nie ma z tym problemu. Co do samej wielkości gotowego programu - nie przejmuj się tym, czasy dyskietek już dawno minęły :D
Technical Details
Message-ID:
<slrnmq62oc.24j.nospam@nc10.lan>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailReferences:
<mnus1o$r32$1@node2.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!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: Pit <nospam@sdf.lonestar.org> Newsgroups: pl.comp.lang.java Subject: Re: Jak wywoływać programy w Javie ? Date: Mon, 13 Jul 2015 00:49:16 +0000 (UTC) Organization: ATMAN - ATM S.A. Lines: 46 Message-ID: <slrnmq62oc.24j.nospam@nc10.lan> References: <mnus1o$r32$1@node2.news.atman.pl> NNTP-Posting-Host: user-109-243-69-183.play-internet.pl Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1436748556 31812 109.243.69.183 (13 Jul 2015 00:49:16 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Mon, 13 Jul 2015 00:49:16 +0000 (UTC) User-Agent: slrn/1.0.1 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit