2011-08-22 12 views
9

Mam aplikację kliencką dla bogatych klientów Java. które chcę rozpowszechniać na niektórych komputerach w pracy, ale nigdy wcześniej nie robiłem czegoś takiego. Ludzie nie są zbyt pochłonięci pracą komputera w moim miejscu pracy, a ponieważ jest to praca studencka, nie będę tam dłużej i chciałbym, aby mój program był łatwy w obsłudze, dzięki czemu byłaby możliwa do uruchomienia, gdy ludzie się podwoją. -Kliknij na to.Jak rozpowszechniać mój program Java, aby można go było uruchomić, klikając dwukrotnie jeden plik?

Nie chcę też ręcznie instalować środowiska JRE, aby go uruchomić. Zasadniczo, chciałbym wiedzieć, jak sprawić, aby moja aplikacja Java była łatwa w obsłudze przez dwukrotne kliknięcie (nawet jeśli jest tylko w oknach, jest w porządku). Jestem prawie pewien, że będę musiał spakować poprawną wersję JRE, ale nie wiem, jak to zrobić.

Czytam na niektórych stronach, że nie powinieneś pakować JRE wraz z programem, ponieważ powoduje to, że ludzie mają wiele różnych wersji, z których niektóre są nieaktualne, i powoduje problemy bezpieczeństwa, ale to nie jest problem w tym przypadku ponieważ komputery, które mają uruchamiać moją aplikację, nie są podłączone do Internetu i są używane tylko do uruchomienia tego programu.

Nieco powiązane pytanie: Ponieważ moja aplikacja jest obecnie projektem Eclipse, otrzymuję moje zasoby, takie jak ikony, obrazy, bazy danych SQLite (do odczytu i zapisu) itp., Używając ścieżek względnych (np .: img/test.png).

Czy będę musiał zmienić którąś z tych ścieżek, aby nadal działały, nawet gdy są zapakowane?

+1

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

+0

@Andrew Thompson Tak, to robi –

+1

Należy również rozważyć [tag: java-web-start]. – trashgod

Odpowiedz

7

To, czego szukasz, to plik JAR. W przypadku zaćmienia dość łatwo jest utworzyć plik Jar. W szczególności będziesz chciał kliknąć prawym przyciskiem myszy na swoim projekcie, przejść do Eksportuj, a następnie wybrać "Runnable Jar". Uważaj na ścieżki do folderów. Może być konieczne zachowanie folderu zasobów obok pliku Jar. Być może będziesz musiał podać trochę szczegółów, aby uzyskać dokładną odpowiedź na ten temat. Zazwyczaj folder Zasoby znajduje się w tym samym miejscu, co plik JAR (w tym samym folderze na komputerze).

+0

Wiedziałem o plikach JAR, ale nigdy ich nie używałem i wydawało mi się to skomplikowane w IDE JDeveloper (czego używaliśmy w szkole). Spróbuję tego, co właśnie wspomniałem w Eclipse i zobaczę, jak to działa. Nadal będę musiał upewnić się, że na komputerze jest już JRE, prawda? –

1

Aby uruchomić problem, klikając go dwukrotnie, można go rozprowadzić jako plik jar lub plik wsadowy, aby wywołać plik jar.
Dla części instalacyjnej można utworzyć plik wsadowy, który sprawdza, czy jest obecna java, a następnie wywołuje instalator, jeśli nie jest.
Edit:
Kod partii:

IF DEFINED JAVA GOTO ok 
java-installer.exe 
GOTO end 
:ok 
your-application.jar 
:end 
+0

Wygląda świetnie, ale czy to nie wystarczy, aby sprawdzić, czy jest jakakolwiek JAKA wersja jest obecna? Załóżmy, że zainstalowana wersja Java 1.3 i używam wersji 1.6 w moim środowisku programistycznym, czy nie spowoduje to problemów? –

4

Lepszym rozwiązaniem dla łatwy instalacja aplikacji Java. z GUI uruchamia go przy użyciu Java Web Start. Dla użytkownika JWS jest opcją instalacji "jednym kliknięciem", która może (zainstalować & uruchomić aplikację, a następnie) dodać skróty do pulpitu i elementy menu. Uruchomienie JWS oznaczałoby dla ciebie więcej pracy, ale dla użytkownika końcowego to pestka.

Aby upewnić się, że do uruchomienia aplikacji jest odpowiednie środowisko JRE, należy użyć deployJava.js (zobacz link JWS, aby uzyskać więcej informacji). Skrypt musiałby zostać ponownie skonfigurowany, aby pobrać instalator JRE z lokalnej sieci - domyślnie jest to pobranie z Oracle.

Większość zasobów powinna być spakowana w plikach jar i dostarczana wraz z aplikacją., Ale dla DB, użyj JNLP ExtensionInstallerService, aby zadzwonić do instalatora DB.


..Java Web Start jest rodzajem linku (lub mogę uczynić go skrótem na pulpicie), który użytkownicy klikną, aby zainstalować środowisko JRE i uruchomić program, jeśli środowisko JRE nie jest zainstalowane, lub po prostu uruchom program, jeśli środowisko JRE jest obecny na komputerze.

Sposób, w jaki będzie działać, to posiadanie strony internetowej w lokalnym intranecie. Gdy użytkownik odwiedza stronę, skrypt sprawdza odpowiedni JRE.

  • Jeśli jest obecny, zapisuje link do pliku uruchamiania.
  • Jeśli nie ma JRE lub wersja jest zbyt niska, poprowadzi użytkownika przez instalację (tylko kwestia kliknięcia "OK", gdy zostaniesz o to poproszony). Następnie umieści link do aplikacji.

Mogę następnie skonfigurować łącze do pobierania środowiska JRE z serwera w naszej sieci.

To część, w której trzeba zmienić konfigurację skryptu. AFAIR skrypt ujawnia adres URL, pod którym należy szukać elementów JRE - można go zmienić tak, aby wskazywał na miejsce w intranecie.

.. Tak więc "Web" jest tylko w nazwie, komputery nie muszą być połączone z Internetem, aby to działało, prawda?

Tak. JWS to świetna technologia uruchamiania dla bogatych klientów Java, ale jest to źle dobrana nazwa.

+0

Widzę, wielkie dzięki za informacje, to na pewno się przyda! Aby upewnić się, że rozumiem poprawnie, Java Web Start jest rodzajem linku (lub mogę zrobić skrót na pulpicie), który użytkownicy klikną, aby zainstalować środowisko JRE i uruchomić program, jeśli środowisko JRE nie jest zainstalowane, lub po prostu uruchom program, jeśli środowisko JRE jest obecne na komputerze. Mogę następnie skonfigurować łącze, aby pobrać JRE z serwera w naszej sieci. Więc "Web" jest tylko w nazwie, komputery nie muszą być połączone z Internetem, aby to działało, prawda? –

+0

Zobacz zmiany. A jeśli znalazłeś te informacje. poręczny, nie krępuj się głosować w górę moja odpowiedź. ;) –

+0

BTW - strona, z którą łączyłem się z demo 'ExtensionInstallerService'. ma wiele * samodzielnych * przykładów. Zawierają cały kod, a także plik kompilacji, który powinien być łatwy do zaimportowania do głównych IDE, takich jak Eclipse. Daj im szansę, aby dowiedzieć się, jak to działa i co może zrobić dla Ciebie i Twoich użytkowników. –

0

Jeśli trudno jest wdrożyć wyżej wymienione metody. Możesz kontynuować to proste podejście.

Utwórz bibliotekę z lokalizacją. Umieść wszystkie słoiki, które używa twoja aplikacja. Jeśli możesz utworzyć słoik dla swojej aplikacji, możesz bardzo dobrze umieścić plik application.jar w folderze lib. Utwórz plik wsadowy w tej samej lokalizacji, który będzie zawierał polecenie java dla twojej głównej klasy. Tekst wewnątrz swojej partii może wyglądać coś podobnego do tego:

set path="\lib\" 
java -cp %path% package1.package2.MainClass 

Jeśli masz jakieś inne zależności, dla ex: jeśli używasz obrazów w kodzie pod img/icon.jpg. Następnie wystarczy przesunąć folder img również do tej lokalizacji.

Po prostu spakuj te pliki za pomocą WinRAR i udostępnij je. Uruchomienie pliku wsadowego po rozpakowaniu zip spowoduje uruchomienie programu java MainClass niezależnie od lokalizacji, w której jest on umieszczony w systemie klienta.

PS: Jeśli nie możesz utworzyć słoika dla swojej aplikacji i umieścić go w folderze lib, po prostu skopiuj folder bin z plikami klas i wklej go w miejscu i zmień odpowiednio plik wsadowy, aby wyszukać klasy wewnątrz pojemnika .

Powiązane problemy