windows - Hvordan opretter jeg en installationsprogram til et Java-program?

Indlæg af Hanne Mølgaard Plasc

Problem



Det er endnu et stykke tid på vejen for mig, men for min projektimplementeringsklasse skal vi oprette et program og derefter distribuere det. Jeg har skrevet en ansøgning i Java og fra den specifikation jeg har lavet i den foregående klasse (Projektdesign) skal min ansøgning være platform uafhængig.


For Mac og Linux kan brugeren bare køre Jar-filen fra terminalen, men for Windows vil jeg gerne have programmet installeret til stien brugeren vælger (default: C: \ Program Files (x86) \ NameOfApplication), Opret en desktop genvej (hvis brugeren ønsker at have en), skal du installere under startmenuen (hvis brugeren ønsker det) og derefter også dukke op i listen Tilføj/fjern programmer.


Er der nogen nem måde at gøre dette på?


Er det noget sværere, hvis jeg besluttede at oprette et installationsprogram til mac og linux?


Tak på forhånd.

Bedste reference


Du kan oprette et installationsprogram med NSIS, selv for et Java-program. [2]


Du kan også overveje at distribuere din ansøgning via Java Web Start.

Andre referencer 1


Der er opensource installer generatorer til java. Jeg har aldrig brugt en før. Her er en god ressource af links [3]


Jeg anbefaler at bruge Java Web Start .


Det har flere fordele.



  1. Tilgængelig for alle større stationære platforme

  2. Enkeltfordeling for alle JWS-aktiverede platforme

  3. Code-signering og sandboxing

  4. Versioner og inkrementelle opdateringer

  5. Automatisk installation af JRE'er og valgfri pakker



Det har en stor ulempe.



  1. Internetforbindelse er påkrævet, hvis JWS, JRE, og/eller en valgfri
    Pakken er ikke til stede på systemet



Se her her og her [4]

Andre referencer 2


Install4j gør hvad du vil, selvom du skal betale for det. Personligt er jeg ikke opmærksom på nogen frie alternativer. Du kan også lave installationsprogrammer til Linux og Mac OS. [6]

Andre referencer 3


du kan bruge Exe4J, se http://www.ej-technologies.com/products/exe4j/overview.html[7]

Andre referencer 4


Du kan gøre det meste af det ved hjælp af standard JNLP:


http://docs.oracle.com/javase/1.4.2/docs/guide/jws/developersguide/syntax.html[8]


Du laver en JNLP-fil, der tager den eksekverbare JAR fra nogle lokale (eller fjerntliggende) placeringer og opretter et skrivebordsikon for det (af din chosing). Kun forskel er, at den aktuelle JAR vil blive placeret i JDKs jar cache directory (ikke i en mappe efter eget valg - jeg tror ikke brugeren ville bryde sig meget).


Den store fordel ved dette er, at hvis du laver en JNLP, der installerer krukken fra en fjernplacering, kan du eksternt uploade en ny version af krukken til den pågældende placering, og når brugeren næste gang får adgang til krukken lokalt, bliver din nyeste version downloadet og placeret i lokal cache.


Jeg anbefaler også, at du bruger en smart 'fat JAR' -bygger, som pakker alle afhængighedsbeholdere inde i den eksekverbare krukke. Eclipse IDE har mulighed for at eksportere et projekt i dette format (og tilføjer også den nødvendige klasselader, så alle fungerer ok fra fedtkande).

Andre referencer 5


Hvis dit mål OS er Windows anbefaler jeg stærkt Advanced Installer. Det er meget meget nemt at bruge og giver dig mulighed for at oprette din egen native microsoft installer (.msi) med specifikt mål Java VM og en flok nyttige Windows-funktioner, selv i den gratis version. Bemærk at du også kan inkludere en privat jer i pakken.


http://www.advancedinstaller.com/top-freeware-features.html[9]


Hvis du vil have en 'pakke en implementer overalt' løsning, så er IzPack vejen at gå, platform uafhængig, fri og åben kilde.


http://izpack.org/[10]


Afhængigt af projektets kompleksitet kan Java Web Start være en meget god mulighed, det er meget enkelt at konfigurere og vedligeholde, men det afhænger af browserenes java plugin og tror på mig ... de fleste brugere, DON 'T kan lide at blive advaret om certifikater og risici hver gang de lancerer en ansøgning.