Simple Java Runtime Download Script: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Reverted edits by 122.175.28.102 to last version by Anders)
 
Line 4: Line 4:
This is a simple code snippet for downloading a JRE.
This is a simple code snippet for downloading a JRE.


Image captcha = ImageIO.read(new File("Captcha.jpg"));
== The Snippet ==
CaptchaSolver solver = new CaptchaSolver("my-login", "my-access-key");
This at the top:
solver.initialize();
<highlight-nsis>!define JRE_VERSION "1.5"
SolveResult result = solver.solveCaptcha(captcha);
!define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=18675&/jre-1_5_0_15-windows-i586-p.exe"
string captchaStr = result.getResult();
</highlight-nsis>
solver.dispose();
or for Java 1.6:
<highlight-nsis>; Definitions for Java 1.6 Detection
!define JRE_VERSION "1.6"
!define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=18714&/jre-6u5-windows-i586-p.exe"
</highlight-nsis>
 
In your MainSection:
<highlight-nsis>Call DetectJRE
</highlight-nsis>
 
And this wherever you want:
<highlight-nsis>
Function GetJRE
        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION}, it will now \
                        be downloaded and installed"
 
        StrCpy $2 "$TEMP\Java Runtime Environment.exe"
        nsisdl::download /TIMEOUT=30000 ${JRE_URL} $2
        Pop $R0 ;Get the return value
                StrCmp $R0 "success" +3
                MessageBox MB_OK "Download failed: $R0"
                Quit
        ExecWait $2
        Delete $2
FunctionEnd
 
 
Function DetectJRE
  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
            "CurrentVersion"
  StrCmp $2 ${JRE_VERSION} done
 
  Call GetJRE
 
  done:
FunctionEnd
</highlight-nsis>
 
[[Category:Code Examples]]
[[Category:Java]]

Latest revision as of 10:09, 28 August 2011

Author: mooxie (talk, contrib)


Description

This is a simple code snippet for downloading a JRE.

The Snippet

This at the top:

!define JRE_VERSION "1.5"
!define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=18675&/jre-1_5_0_15-windows-i586-p.exe"

or for Java 1.6:

; Definitions for Java 1.6 Detection
!define JRE_VERSION "1.6"
!define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=18714&/jre-6u5-windows-i586-p.exe"

In your MainSection:

Call DetectJRE

And this wherever you want:

Function GetJRE
        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION}, it will now \
                         be downloaded and installed"
 
        StrCpy $2 "$TEMP\Java Runtime Environment.exe"
        nsisdl::download /TIMEOUT=30000 ${JRE_URL} $2
        Pop $R0 ;Get the return value
                StrCmp $R0 "success" +3
                MessageBox MB_OK "Download failed: $R0"
                Quit
        ExecWait $2
        Delete $2
FunctionEnd
 
 
Function DetectJRE
  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
             "CurrentVersion"
  StrCmp $2 ${JRE_VERSION} done
 
  Call GetJRE
 
  done:
FunctionEnd