Uruchamianie plików .jar

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.

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.

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.

0

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

1

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

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

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" "$@"

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.

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.

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 ;)

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