c ++ - Forpakning af en jre med min ansøgning

Indlæg af Hanne Mølgaard Plasc

Problem



Min ansøgning indeholder en c ++ exe-fil, der påberåber et java-program ved hjælp af JNI, hvilket kræver jvm.dll. Jeg vil dog gerne have min ansøgning afsendt med sin egen indlejrede jre, men efter at jeg kopierede jre6-mappen fundet i JAVA\_HOME og tilføjede den til mit installationsprogram, fejler det ikke at køre programmet. (Fejl opstod under initialisering af VM Unable for at indlæse biblioteket: Can finder ikke afhængige biblioteker), når jeg bruger afhængighedsvælger på jvm.dll, står det at det ikke kan finde gpsvc.dll, IEShims.dll og sysntfy.dll. Efter at jeg forsøgte at kopiere disse dll'er til den samme mappe som jvm.dll, fortæller afhængighedsvælgeren mig, at gpsvc.dll andsysntfy.dll er 64 bit, hvor det skal være x86. Problemet er, at de var de eneste dll'er på mit system, hvad skal jeg gøre?

Bedste reference


Du kan hente de nødvendige dll'er fra de relevante websteder, dvs. fra denne. [4]

Andre referencer 1


Java virtuelle maskine består af meget mere end blot jvm.dll. Du skal omfordele hele JVM-pakken og installere den på en brugers maskine i stedet for blot at tilføje jvm.dll til din egen applikation.


Det vil nok være meget nemmere at kræve, at dine brugere skal downloade og installere JVM selv, før du installerer din applikation. Hvis du virkelig vil omfordele JVM med din ansøgning, skal du finde dokumentation på Oracles hjemmeside om, hvad den nøjagtige licens for det er, og hvordan du gør det. Se på dette afsnit i JDK 6 readme, for eksempel. [5]


Det er ikke så enkelt som at kopiere jvm.dll og andre biblioteker, som det afhænger af.