1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import sys
global JAVAHOME
JAVAHOME = None
if sys.platform == "win32":
# figure out where the JDK lives
try:
import _winreg as wreg
class WindowsRegistry:
# see the Python Cookbook, #146305, Dirk Holtwick
def __init__(self, keyname):
" handle registry access "
self.reg = wreg.ConnectRegistry(None, wreg.HKEY_LOCAL_MACHINE)
self.key = wreg.OpenKey(self.reg, keyname)
def get(self, name):
" get value out of registry "
v, t = wreg.QueryValueEx(self.key, name)
return v, t
def close(self):
" close the key finally "
if hasattr(self, 'key'):
self.key.Close()
if hasattr(self, 'reg'):
self.reg.Close()
def __del__(self):
self.close()
def get_registry_value(vname, subname):
r = WindowsRegistry(vname)
v, t = r.get(subname)
return v
javaversion = get_registry_value(r"SOFTWARE\JavaSoft\Java Development Kit", "CurrentVersion")
JAVAHOME = get_registry_value(r"SOFTWARE\JavaSoft\Java Development Kit\%s" % javaversion, "JavaHome")
print >>sys.stderr, 'found JAVAHOME =', JAVAHOME
except:
JAVAHOME = None
|