exe zamiast jara?

0

Witam
Mam pytanie czy jest moźliwość spakowania klas napisanego programu razem
z klasami javy potrzebnymi do dzialania tego programu do jednego pliku(cos na wzor jara), który
działałby w widnowsie (np. moj_program.exe) bez potrzeby instalowania javy.
Dzieki za odpowiedz

0

Odpowiedz z serii 'Odpowiedzi na milionowe pytanie': Google. Java to nie tylko klasy a caly runtime, wiec jego tez musialbys spakowac. Czytaj: plik bedzie wazyl z 10 MB(plus Twoj program) - nie wiem ile teraz runtime wazy, dawno nie pisalem - + bedzie dzialal wolniej + cala zaleta przenosnosci Javy idzie w sina dal...

0

Mnóstwo kompilatorów do wyboru. Najlepsze i najdroższe są komercyjne. Kosztują często od $1500 w górę.
Darmowe nie są często kontynuowane i szybko wypadają z obiegu wraz z nowymi wersjami JRE. Tu jest lista części z nich:
http://schmidt.devlib.org/java/native-compilers.html#products

0
johny_bravo napisał(a)

plik bedzie wazyl z 10 MB(plus Twoj program) - nie wiem ile teraz runtime wazy, dawno nie pisalem - + bedzie dzialal wolniej + cala zaleta przenosnosci Javy idzie w sina dal...

Zobacz ile ważą biblioteki startowe dowolnego samodzielnego programu okienkowego. Konsolowe wersje C potrafiły mieć 50KB..4MB (zależnie od modelu pamięci i obsługi). Tylko specjalnie okrojone wersje schodziły do 2-4 KB. Runtime dla statycznej aplikacji okienkowej mający conajmniej 10-15 MB to obecnie chyba standard. Poza tym im większy runtime, tym z reguły krótszy i bardziej efektywny kod (pod warunkiem, że korzysta z tego pierwszego w stopniu jak najwyższym). Im króstszy i biedniejszy runtime, tym więcej trzeba wlinkować bibliotek statycznych. Wychodzi w sumie na to samo. Alternatywą są biblioteki dynamiczne takie jak DLL lub całe dynamiczne języki takie jak Java, C#.
Co do przenośności javy, to racja - idzie w siną dal. Natomiast nie można tego powiedzieć o szybkości - kod kompilowany do kodu maszynowego jest niemal zawsze szybszy od kodu interpretowanego. Drugim powodem jest zabezpieczenie kodu przed dekompilacją / spiratowaniem. I to są jedyne ważne przyczyny kompilacji programu do kodu maszynowego.

0

A to niby czemu idzie w siną dal? Wystarczy pokompilować dla różnych systemów bez zmiany czegokolwiek w kodzie. Jak dla mnie to jest wystarczająca przenośność. Nawiasem mówiąc eclipse też jest dostarczany w postaci wykonywalnej.

0

O ile pamietam pare 'packerow' to nie kompilowaly one kodu, tylko dolaczaly maszyne wirtualna. Byla to wiec de facto wersja 'standalone' oprogramowania z rozpakowywana w locie maszynka wirtualna. Czyli takie rozwiazanie w pelni ssie. Jesli dziala to tak jak piszesz, to bomba, zupelnie inna bajka :)

@rnd: to nie jest ogolnie rozumiana przenosnosc ;) Eclipse (w czasie, gdy ja go uzywalem) byl zbiorem jarow, ze starterem w postaci execa.

0

Co do przenośności Javy o która tak wszyscy zabiegaja, może to i zaleta ale zależy jak dla kogo :) jakie ma znaczenie bo dla mnie to średnie.
Nie jestem programista z zawodu, raczej to bylo moje hobby i caly czas sie ucze, a teraz pisze program inżynierski który chce sprzedawać jednak na razie nie stac mnie na profesionalny instalator a chce udostepniac program w prostej formie bez potrzeby instalowania javy. Jeśli chodzi o przenośność to zależy mi tylko na windowsie bo sadze ze 95% moich przyszlych klijentów korzysta wlasnie z windowsa tak ze przenośność javy nie jest dla mnie istotna, poza tym mozna po prostu przygotowac na inne systemy też takie programy.
Mimo wszystko dzięki za wszystkie odpowiedzi pozdrawiam
Mariusz

0
aloszafiodor napisał(a)

Co do przenośności Javy o która tak wszyscy zabiegaja, może to i zaleta ale zależy jak dla kogo :) jakie ma znaczenie bo dla mnie to średnie.
Nie jestem programista z zawodu, raczej to bylo moje hobby i caly czas sie ucze, a teraz pisze program inżynierski który chce sprzedawać jednak na razie nie stac mnie na profesionalny instalator a chce udostepniac program w prostej formie bez potrzeby instalowania javy. Jeśli chodzi o przenośność to zależy mi tylko na windowsie bo sadze ze 95% moich przyszlych klijentów korzysta wlasnie z windowsa tak ze przenośność javy nie jest dla mnie istotna, poza tym mozna po prostu przygotowac na inne systemy też takie programy.
Mimo wszystko dzięki za wszystkie odpowiedzi pozdrawiam
Mariusz

Klient pisze się bez j :D

0

@aloszafiodor - jak nie zalezy Ci na przenosnosci, chcesz tylko wspierac Windows, to dokonales po prostu zlego wyboru jesli chodzi o technologie. Tam rzadzi (IMHO niepodzielnie) .NET. Od ktoregostam SP do XP jest on z automatu instalowany wiec nie ma problemu z runtimem.

0

Jak napisał hurikhan użyj http://launch4j.sourceforge.net/ i nie słuchaj "mądrych rad" o .NET.

0

No pewnie, najlepiej pisac wszystko w jendym jedynym najlepszym jeyzku i technologii. Chcesz powiedziec, ze jesli pisze sie tylko na windowsa, to Java bedzie lepsza? Tworzenie exe z jara jest lepsze? Wyjrzyj poza Jave czasami, sa rozne inne technologie.

0

Ale tu chyba bardziej chodzi o to, ze nie da sie byc specem od wszystkiego i jezeli ktos juz wybral Jave, to mowienie mu, zeby na potrzeby kodowania pod windows wzial sie za .NET jest rada troche przesadzona. Sam mialem ten dylemat, gdy wybieralem jezyk do nauki, gdyz po odrzuceniu mnie z listy osob, ktore beda uzytkowac moj soft - 99% uruchomien bedzie na windowsie. Jednak Java mnie najbardziej zainteresowala i chce sie jej uczyc mimo obaw, ze od znajomych bede ciagle slyszal: "nie uruchamia sie", "co to jest ten jvm?", "a dlaczego musze jeszcze cos instalowac?" itp.
Jak sie ma do dyspozycji wielu programistow w firmie, to soft typowo pod windows zleci sie temu od .NET, ale jak sie cos klepie samemu, to nauczonego jezyka uzywa sie zarowno do celow, do ktorych sie swietnie nadaje, jak i w takich przypadkach, gdy inny sprawdzilby sie lepiej, ale "nasz" mimo wszystko sobie jakos poradzi.

0

Programista jednego jezyka to nie programista, to klepacz.
Zalozmy ze wybierasz C# - jesli odrzucic to co ma skladnia C# a czego nie ma w Javie (jak np wyrazenia lambda czy inne, nie jest niezbedne do napisania aplikacji), reszta jest niemalze identyczna. Mowienie o "nauce nowego jezyka" jest troche nie na miejscu.
Rowniez bardzo lubie Jave, i nasza firma glownie robi aplikacje enterprise w Javie, co nie zmienia faktu ze mamy klientow ktorzy operuja tylko i wylacznie na windowsach i dla nich klienci sa pisani w .NET i C#. Pisze sie takie aplikacje desktopowe o wiele szybciej, a i look and feel jest o niebo lepszy, bo jest prawdziwie natywny.
Na koniec tylko wspomne ze bardzo przydatne jest pisanie w wiecej niz jednym jezyku, pozwala podpatrzec inne pomysly, mozliwosci. Dla tych ktorzy kochaja Jave a nienawidze wszystkiego co zwiazane z M$ - trzymaj przyjaciol blisko, a wroga jeszcze blizej (czy jakos tak)- dobrze wiedziec co ma w zanadrzu ;d

0

W moim przypadku Java nie jest pierwszym jezykiem, od prawie 4 lat pracuje zawodowo, jako programista PHP (wiem, ze moze sie zaraz pojawic kontrargument, ze PHP to takie przedszkole programistow, ale wtedy uznam to za krzywdzace, gdyz takze tego jezyka mozna uzywac odpowiednio, co staram sie robic), a nauka Javy jest wlasnie po to, o czym napisales, czyli spojrzenie na inne jezyki w celu pozyskania najlepszego z kazdego z nich (a przy pomyslnych wiatrach w dalszej przyszlosci przekwalifikowanie sie).

Ale o ile w PHP czuje sie pewnie i jestem gotow "z marszu" podjac sie nawet i trudnych zadan, w Javie mimo tego, ze tworzenie prostych aplikacji przychodzi mi w miare bez problemow, wciaz uwazam, ze nie jestem gotowy podjac sie pracy programisty Javy. Chocby ostatni moj watek, na forum, gdzie dzieki Olamagato moglem zrozumiec, jak wiele glupich bledow popelniam.
Tutaj nie pomoze to, ze wszystkie jezyki sa w zasadzie do siebie podobne. Kazdy z nich ma drobne niuanse charakterystyczne dla siebie, gdzie dopiero doswiadczenie w danym jezyku pozwala pewne bledy eliminowac. Tak wiec w tej kwestii moim zdaniem nie jest tak rozowo, ze mozna bez problemu przeskoczyc na inny jezyk. Byc moze da sie szybko tworzyc kod dzialajacy, ale do np kodu wydajnego jeszcze daleka droga.

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