Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1""" 

2@file 

3@brief Various functions to install `Java JDK <http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html>`_ 

4""" 

5from __future__ import print_function 

6import sys 

7import re 

8import os 

9 

10from ..installhelper.install_cmd_helper import run_cmd 

11from .install_custom import download_page, download_file 

12from .install_custom_exceptions import ManualDownloadException 

13 

14 

15def install_javajdk( 

16 temp_folder=".", fLOG=print, install=True, force_download=False, version=None): 

17 """ 

18 Install `Java JDK <http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html>`_. 

19 

20 @param temp_folder where to download the setup 

21 @param fLOG logging function 

22 @param install install (otherwise only download) 

23 @param force_download force the downloading of pandoc 

24 @param version version to install (unused) 

25 @return temporary file 

26 """ 

27 if version is not None: 

28 raise ValueError("cannot specify a version") 

29 #bb = IsPandocInstalled() 

30 bb = False 

31 if bb and not force_download: 

32 return True 

33 

34 link = "http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html" 

35 page = download_page(link) 

36 if sys.platform.startswith("win"): 

37 reg = re.compile("(http.*?jdk.*?windows-x64[.]exe)") 

38 alls = reg.findall(page) 

39 if len(alls) == 0: 

40 raise Exception( 

41 "unable to find a link on a .exe file on page: " + 

42 page) 

43 

44 file = alls[-1].split("/")[-1] 

45 version = file.split("-")[1] 

46 b18 = int(version.replace("8u", "")) + 18 - 66 

47 root = "http://download.oracle.com/otn-pub/java/jdk/{0}-b{1}/".format( 

48 version, b18) 

49 

50 filel = root + file 

51 fLOG("[pymy] java-jdk, version ", version) 

52 vershort = version.split("-")[0] 

53 full = filel.format(vershort, version) 

54 outfile = os.path.join(temp_folder, full.split("/")[-1]) 

55 fLOG("[pymy] download ", full) 

56 local = download_file(full, outfile) 

57 size = os.stat(local).st_size 

58 if size < 2 ** 20: 

59 raise ManualDownloadException( 

60 "You should directly download the file from:\n{0}".format(link)) 

61 if install and not bb: 

62 run_cmd("msiexec /i " + local, fLOG=fLOG, wait=True) 

63 return local 

64 else: 

65 raise NotImplementedError("not available on platform " + sys.platform)