Uruchamianie plików .jar

Odpowiedz Nowy wątek
2012-09-19 22:52

Rejestracja: 8 lat temu

Ostatnio: 4 lata temu

0

Witam. Uczę się programować w javie. Mam taki programik już z GUI. Jak mam już plik .jar, to wiem jak go otworzyć z konsoli. Ale czy jest możliwość, aby go uruchamiać jak taki zwykły program, że klikam dwukrotnie na niego i otwiera on mi się? Otworzenie tego .jar za pomocą "java" nic nie daje.

Pozostało 580 znaków

2012-09-19 23:03

Rejestracja: 10 lat temu

Ostatnio: 3 lata temu

Lokalizacja: Przedmonitorze Górne

1

Rozwiązanie naokoło: tworzysz plik run.vbs. Wklejasz do niego to:

Set shell = WScript.CreateObject("WScript.Shell")
shell.Run "java -jar Aplikacja.jar" ,0 , false

oczywiście Aplikacja.jar zmieniasz na nazwię Twojego jara i możesz uruchamiać dwuklikiem - a konsola się schowa :)
EDIT: rozwiązanie tylko dla systemów Windows.


I fart u die.
edytowany 1x, ostatnio: mychal, 2012-09-19 23:03

Pozostało 580 znaków

2012-09-20 00:10

Rejestracja: 14 lat temu

Ostatnio: 39 sekund temu

0

Coś pewnie skopałeś z instalacją Javy. Na Windowsach domyślnie JARy są skojarzone w javaw.exe i jeśli nie masz takiego skojarzenia, to sobie zrób ręcznie po prostu.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2012-09-20 00:38

Rejestracja: 8 lat temu

Ostatnio: 4 lata temu

0

No skojarzenie sobie zrobiłem. Ale to nic nie pomaga. A po instalacji winrara jest on skojarzony z .jar

Pozostało 580 znaków

2012-09-20 03:35

Rejestracja: 11 lat temu

Ostatnio: 5 miesięcy temu

1

To ja się zapytam: Na jaką cholerę Ci to bezwartościowe gówno jakim jest winrar?

http://www.softpedia.com/get/Others/Miscellaneous/Jarfix.shtml

Pozostało 580 znaków

2012-09-21 22:28

Rejestracja: 14 lat temu

Ostatnio: 4 lata temu

1

dobra dobra. winrar albo dwuklik i domyślne powiązanie z javaw to są szczegóły. Może jednak oświećmy gościa i powiedzmy prawdę ;)

Nie ma prostej metody, która robi elegancko klikalny plik

mychal napisał prawidłowo, i nie łapię czemu ktoś go zminusował biedaka ;] Osobiście zawsze trzeba napisać coś, co jest natywne, i co po prostu uruchomi odpowiednie polecenie "java blablabla". Cudów nie ma.

Skrypt vbs tak samo dobry, jak wszystko inne. Ja swego czasu pisałem skrypty .js, które robiły to samo (tzn WScript.Shell wykorzystywały). Można napisać skrypt w powershell'u. A można zwykły wsadowy bat. Zaletą skryptów w basic'u albo javascript jest to, że możemy się trochę lepiej zintegrować z windowsem (np wyczytać z rejestru systemowego ścieżki do JDK i JRE). A zaletą plików wsadowych bat jest to, że bardzo łatwo je przepisać na skrypt dla powłoki *nixowej.

Taka para plików: "runme.bat" (dla windows) oraz "runme" (dla *nix) to jest bardzo powszechna, nawet w normalnych, super-poważnych projektach, więc nie obawiaj się, że robisz coś "nieprofesjonalnie" ;) Na przykład taki serwer aplikacyjny GlassFish. Mam go pod ręką na komputerze zainstalowanego. No i jest poważnym projektem, dlatego go wymieniam jako przykład. W katalogu "bin" są m.in. dwa w pliki:

asadmin.bat (uruchomienie pod windows)

@echo off
VERIFY OTHER 2>nul
setlocal ENABLEEXTENSIONS
if ERRORLEVEL 0 goto ok
echo "Unable to enable extensions"
exit /B 1
:ok
call "%~dp0..\glassfish\config\asenv.bat"
if "%AS_JAVA%x" == "x" goto UsePath
set JAVA="%AS_JAVA%\bin\java"
goto run
:UsePath
set JAVA=java
:run
%JAVA% -jar "%~dp0..\glassfish\modules\admin-cli.jar" %*

asadmin (uruchomienie pod *nixem)

#!/bin/sh
AS_INSTALL=`dirname "$0"`/..
case "`uname`" in
  CYGWIN*) AS_INSTALL=`cygpath --windows $AS_INSTALL`
esac
AS_INSTALL_LIB="$AS_INSTALL/modules"
. "${AS_INSTALL}/config/asenv.conf"
JAVA=java
if [ ${AS_JAVA} ]; then
    JAVA=${AS_JAVA}/bin/java
fi
exec "$JAVA" -jar "$AS_INSTALL_LIB/admin-cli.jar" "[email protected]"

jak widzisz z wyższego przykładu, plik są przekombinowane, ale oba na samym dole mają polecenie, które można od razu rozpoznać:

java - jar (argumenty dla wirtualnej maszyny) plik.jar (argumenty dla programu w JAR)

pliki służą do zarządzania serwerem. Między innymi do jego uruchamiania i zabijania.

Jeśli zaś naprawdę chcesz być super-ultra-profesjonalny i elegancki (plik exe z własną ikonką, itp) to napisz sobie prosty program w C, który będzie miał jedną linijkę ;)
int main() { system("java -jar aplikacja.jar"); return 0; }

Skompiluj pod wszystkie systemy, jakie chcesz wspierać... i masz. Albo skorzystaj z jakiegoś "uruchamiacza" który wygeneruje dla ciebie takie wykonywalne pliki. Swego czasu, jak mi się chciało bawić, to używałem launchj4. Całkiem miło wspominam. Bardzo wygodnie zamieniał jarki opakowując je w exeka.

Pozostało 580 znaków

2012-09-22 07:16
Moderator

Rejestracja: 11 lat temu

Ostatnio: 1 dzień temu

0

@Ranides, to jest strzelanie z armaty do muchy, facet się uczy i chce uruchamiać dwuklikiem pliki jar na swoim komputerze. Rozwiązaniem jest właściwe skojarzenie plików, a nie pisanie skryptów.
P.S. minus dla @mychal`a nie był mój, dla Ciebie jest mój.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans, 2012-09-22 07:18

Pozostało 580 znaków

2012-09-22 10:43

Rejestracja: 14 lat temu

Ostatnio: 4 lata temu

0

strzelanie z armaty - gość zaniesie DOSŁOWNIE JUTRO na pendrive do kumpla, żeby pokazać - i się potnie, jak nie ruszy, i będzie musiał znowu jakieś kombinacje alpejskie ze skojarzeniami robić na cudzym systemie.

Jednolinijkowy .bat z instrukcją dokładnie identyczną, jak instrukcja konsolowa, to jest "taaakie strzelanie"... ;] Może to i jest strzał: jednym strzałem załatwiasz problem raz na zawsze, na każdy system ;)

edytowany 1x, ostatnio: Ranides, 2012-09-22 10:43
Pokaż pozostałe 2 komentarze
mysle, ze "kazdy jar" sie magicznie nie robi - napisanie zwyklego launchera 1-linijkowego w sytuacji, gdy i tak "do kazdego jara trzeba pisac glupie kody zrodlowe" idace w setkach linii jest jakims dziwnym problemem - Ranides 2012-09-22 11:36
O gustach się nie dyskutuje ;). Dla mnie (mam Windows) pomysł żebym do każdego stworzonego (otrzymanego) jara pisał sobie skrypt i przy uruchomieniu programu oglądał gustowną windowsową konsolę jest absurdalny. - bogdans 2012-09-22 11:50
a to jest myk: plik można sobie napisać tak: @start javaw ARGUMENTY - wtedy nie pokazuje konsoli ;) Dla "ładnych programów z GUI" to zawsze sobie tego wrappera do exe robiłem, to dzięki temu miałem jeszcze ikonek, a na dodatek wrapper pilnuje wersji JRE, jak się go uruchamia u kogoś :) - Ranides 2012-09-22 12:23
Z ciekawości, wrapper sprawdza wszystkie klasy? EntryPoint jest w wersji 1.6, jakieś klasy w środku są 1.7, użytkownik ma JRE 1.6. Program w pliku jar ruszy bez oporów, cuda zaczynają się jak program tworzy obiekty klasy 1.7. Poza tym, brzydkie mignięcie konsoli jednak widać. - bogdans 2012-09-22 12:31
mignięcie widać, dlatego "dla ładnych" wrapper wybierałem :D cudów on nie robi - to jest kreator, taki wizard. W jednym z kroków się po prostu wybiera opcje, jakiej JRE ma wymagać. Można też było spakować razem z JRE, ale to ogromny plik wychodzi. - Ranides 2012-09-22 12:59

Pozostało 580 znaków

Odpowiedz

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