Uruchamianie jara z płyty

0

Mam do napisania program, który będzie się uruchamiany z płyty. Na płytę jest wrzucany plik jar, który będzie plikiem wykonywalnym. Problem w tym, że gdy nie ma się zainstalowanej Javy JRE to program się nie uruchomi. Jak można sprawdzić czy jest zainstalowana JRE i jesli jest to uruchomic program a jesli nie to zaczac instalacje JRE z płyty? Może program w C++/C# z plikiem wykonywalnym EXE, który coś takiego sprawdzi (jesli jest jre to uruchom jar, jesli nie ma to uruchom instalacje jre)? Gdyby na płycie był instalator to nie byłoby problemu lecz ma być gotowy program do uruchomienia.

0

Wygeneruj sobie binarkę - http://stackoverflow.com/questions/147181/how-can-i-convert-my-java-program-to-an-exe-file

Ewentualnie dołącz przenośną wersję Javy i spróbuj napisać w jakimś języku natywnym exe odpalający Twojego jara w dołączonej Javie (nie wiem, czy w tym launcherze przewidzieli uruchamianie z linii poleceń oprócz obsługi z GUI), olej to co użytkownik ma w systemie - http://portableapps.com/apps/utilities/java_portable

1

Jeżeli nie znasz się lub Ci się nie chce pisać albo nie wiesz jak użyj tego
http://launch4j.sourceforge.net/

genialne urządzenie, jeszcze podajesz mu wersję javy którą ma ściągnąć :)

EDIT: tylko pamiętaj że to rozwiązanie będzie działało tylko pod windą, pod MAC-iem i Linuxem trza szukać czegoś innego :P

0

A jest jakiś sposób, w programach które podaliście, żeby sprawdzić czy jest zainstalowane Java JRE w wersji min 1.7 i jeśli nie to zainstaluje JRE z płyty z dołączoną aplikacją? Dodam, że JRE ma nie być ściągane z internetu tylko w razie potrzeby instalowane z płyty. (To nie mój pomysł lecz klienta- ja bym zrobił instalkę na płycie, która po zainstalowaniu programu instaluje JRE) :)

0

launch4j sprawdza wersję javy ale jak jest zła chce ściągać z netu, możliwe jest też używanie podwiązanego jvm tzn. bundled.

0

Dzięki, Launch4j rozwiązał mój problem- dołączyłem jre jako bundle. Mam plik exe który odpala jara wykorzystując bundle z jre. Mam jeszcze jedno pytanie, skoro mam aplikację na płycie i używam log4j która tworzy logi w katalogu log ze ścieżką względną, to gdzie w takim razie zapisywać logi? W C:/ Temp?

0

coś takiego?

log4j.appender.rfile.File=${user.home}/nazwa_aplikacji/logs/logs.log

Czy mogą być problemy z zapisem logów gdy uruchomi się aplikacje na koncie o niskich uprawnieniach (tworzenie, edycja pliku) ?

0

nie korzystałem nigdy z log4j ale znając życie jak nie będziesz miał uprawnień to dupa blada, ale niech się ktoś wypowie co tam się w to bawił :)

0

Mam plik exe który uruchamia jara. Jak to zrobić, żeby aplikacja w jarze miała przywileje do zapiswania, edycji, usuwania plików? Aplikacja będzie znajdowała się na płycie, więc potrzebuję mechanizmu który będzie działał na każdym komputerze.

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