Newsgroup: it.comp.java
Titolo: jvm in explorer

Come faccio a sapere da una pagina web quale jvm sta eseguendo explorer,
vorrei che la pagina si accorgesse di quale versione sia in uso e se non
compatibile con la mia applet rimandi ad una pagina per l'installazione
della jvm corretta.
Ciao
Sergio
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ...
Prova con questi:
System.getProperty("
java.runtime.name
")
System.getProperty("java.vm.version")
naturalmente da dentro un'applet.
Ciao D.
Inviato da 
www.mynewsgate.net



Non si puň.
Se vuoi "forzare" l'uso della JVM di Sun sotto IExplorer, anche se l'utente
non l'ha ancora installata, puoi usare il tag <OBJECT>. Guarda nella
directory demo/plugin della tua installazione dell'SDK. Gli esempi proposti
contengono un riferimento al CAB autoinstallante del JRE di piů recente
versione disponibile sul sito di Sun.
-- 
Fermiamo Scientology prima che sia troppo tardi!!!
http://xenu.com-it.net
 - 
http://xenu.freewinds.cx/
(per rispondere personalmente leva IlDitoDalCulo)

 ha
scritto:

Io vorrei fare una cosa diversa, ho la mia applet che si trova insieme ad
altre pagine su un CD che voglio distribuire e vorrei fare in modo che se
non installata vada ad installare il JRE presente sul mio CD oppure fal
usare solo alla mia applet senza installare niente la mia JRE preente sul
CD, secondo te č possibile?


 CD, secondo te è possibile?
Questo assolutamente non è possibile, perchè per poter usare il JRE di Sun
all'interno di Explorer devono essere inserite alcune modifiche nel registro
di Windows (non so ora quali siano), e quindi i componenti della JVM devono
essere copiati su un'unità non removibile per essere sempre disponibili.
Detto questo, ecco lo script di verifica e avvio.
Vale sempre la regola *Give credits where credits are due*
------------------------------------------------------------ jvmstarter.vbs
'Richiede la presenza almento della JVM 1.4.2 (modifica come richiesto)
const REQ_VERSION = "1.4"
const REQ_MICROVERSION = "2"
'Non cambiare la seguente costante
const JVMCONFIG = "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\"
'Percorso completo dell'installer sul CD (modifica come richiesto)
const INSTALLER_PATH = "\Java\j2se\core\j2re-1_4_2_04-windows-i586-p.exe"
'Percorso completo della pagina iniziale
const STARTPAGE_PATH = "\docs\index.html" (modifica come richiesto)
'La lettera di unità del CD viene aggiunta automaticamente
const OKJVM      = 0
const NOJVM      = 1
const BADVERSION = 2
const BADINSTALL = 3
dim wshell
dim fso
dim startdrive
dim installer
dim startpage
set wshell=WScript.CreateObject("WScript.Shell")
set fso=WScript.CreateObject("Scripting.FileSystemObject")
startdrive = fso.GetDriveName(WScript.ScriptFullName)
installer = startdrive + INSTALLER_PATH
startpage = startdrive + STARTPAGE_PATH
main
Sub main
   dim message
   dim result
 
   select case checkJvm
     case NOJVM
        message = "Per eseguire il contenuto di questo CD"
        message = message + " è necessario installare Java Runtime Environment 1.4.2"
        message = message + vbcrlf + vbcrlf
        message = message + "Eseguire l'installazione ora?"
        result = msgbox(message, vbQuestion + vbYesNo, "Java non rilevato")
        if result=vbYes then installJvm
        exit sub
     case BADVERSION
        message = "Per eseguire il contenuto di questo CD"
        message = message + " è necessario installare Java Runtime Environment 1.4.2"
        message = message + vbcrlf + vbcrlf
        message = message + "Eseguire l'installazione ora?"
        result = msgbox(message, vbQuestion + vbYesNo, "Versione Java non corretta")
        if result=vbYes then installJvm
        exit sub
     case BADINSTALL
        message = "L'installazione attuale di Java Runtime Environment "
        message = message + "sembra essere danneggiata."
        message = message + vbcrlf + vbcrlf
        message = message + "Vuole tentare la riparazione "
        message = message + "installando la JVM fornita su questo CD?"
        message = message + vbcrlf + vbcrlf
        message = message + "Premento [ANNULLA] il contenuto di questo CD non verrà avviato."
        result = msgbox(message, vbExclamation + vbYesNoCancel, "ATTENZIONE")
        if result=vbCancel then exit sub
        if result=vbYes then
           installJvm
           exit sub
        end if
   end select
   startcontents
End Sub
Sub installJvm
   wshell.Run installer,1,false
End Sub
Sub startcontents
   dim IExplorer
   set IExplorer = WScript.CreateObject("InternetExplorer.Application")
   IExplorer.Visible = true
   IExplorer.Navigate startpage
   set IExplorer = nothing
End Sub
Function checkJvm
   dim jvmversion
   dim jvmmicro
   dim javahome
   dim javaexe
   dim javaruntime
 
   jvmversion=""
   jvmmicro=""
   javahome=""
   javaruntime=""
   on error resume next
   jvmversion=wshell.RegRead(JVMCONFIG + "CurrentVersion")
   if jvmversion="" then
      checkJvm = NOJVM
      exit function
   end if
   if jvmversion<>REQ_VERSION then
      checkJvm = BADVERSION
      exit function
   end if
   jvmmicro=wshell.RegRead(JVMCONFIG + jvmversion + "\MicroVersion")
   if jvmmicro<>REQ_MICROVERSION then
      checkJvm = BADVERSION
      exit function
   end if
 
   'facciamo un controllo di coerenza dell'ambiente
   javahome=wshell.RegRead(JVMCONFIG + jvmversion + "\JavaHome")
   if javahome="" then
      checkJvm=BADINSTALL
      exit function
   end if
   javaexe=fso.BuildPath(fso.BuildPath(javahome,"bin"),"java.exe")
   if not(fso.FileExists(javaexe)) then
      checkJvm=BADINSTALL
      exit function
   end if
   javaruntime=wshell.RegRead(JVMCONFIG + jvmversion + "\RuntimeLib")
   if javaruntime="" then
      checkJvm=BADINSTALL
      exit function
   end if
   if not(fso.FileExists(javaruntime)) then
      checkJvm=BADINSTALL
      exit function
   end if
 
   on error goto 0
   checkJvm=OKJVM
End Function
------------------------------------------------------- fine jvmstarter.vbs
