alunizaje/android/tools/jdk-osx/bin/jvisualvm

203 lines
5.1 KiB
Plaintext
Raw Normal View History

2016-11-03 00:05:36 +01:00
#!/bin/sh
#
# Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
# ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
#
# resolve symlinks
#
PRG=$0
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '^.*-> \(.*\)$' 2>/dev/null`
if expr "$link" : '^/' 2> /dev/null >/dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
progdir=`dirname "$PRG"`
old=`pwd`
cd "$progdir"/..
basedir=`pwd`
cd "$old"
case "`uname`" in
Darwin*)
# set default userdir and cachedir on Mac OS X
DEFAULT_USERDIR_ROOT="${HOME}/Library/Application Support/VisualVM"
DEFAULT_CACHEDIR_ROOT=${HOME}/Library/Caches/VisualVM
;;
*)
# set default userdir and cachedir on unix systems
DEFAULT_USERDIR_ROOT=${HOME}/.visualvm
DEFAULT_CACHEDIR_ROOT=${HOME}/.cache/visualvm
;;
esac
if [ -f "$progdir"/../lib/visualvm/etc/visualvm.conf ] ; then
visualvm_jdkhome="$basedir"
old=`pwd`
cd "$progdir/../lib/visualvm/"
basedir=`pwd`
cd "$old"
. "$progdir"/../lib/visualvm/etc/visualvm.conf
elif [ -f "$progdir"/../etc/visualvm.conf ] ; then
. "$progdir"/../etc/visualvm.conf
fi
export DEFAULT_USERDIR_ROOT
# #68373: look for userdir, but do not modify "$@"
userdir="${visualvm_default_userdir}"
cachedir="${visualvm_default_cachedir}"
founduserdir=""
for opt in "$@"; do
if [ "${founduserdir}" = "yes" ]; then
userdir="$opt"
break
elif [ "$opt" = "--userdir" ]; then
founduserdir="yes"
fi
done
foundcachedir=""
for opt in "$@"; do
if [ "${foundcachedir}" = "yes" ]; then
cachedir="$opt"
break
elif [ "$opt" = "--cachedir" ]; then
foundcachedir="yes"
fi
done
if [ -f "${userdir}"/etc/visualvm.conf ] ; then
. "${userdir}"/etc/visualvm.conf
fi
if [ ! -f "$basedir"/etc/visualvm.clusters ]; then
echo Cannot read cluster file: "$basedir"/etc/visualvm.clusters 1>&2
exit 1
fi
readClusters() {
grep -v "^#" "$basedir"/etc/visualvm.clusters | grep -v "^$" | grep -v platform | while read X; do
if expr "$X" : "/.*" >/dev/null; then
echo "$X"
else
echo "$basedir/$X"
fi
done
}
absolutize_paths() {
while read path; do
if [ -d "$path" ]; then
(cd "$path" 2>/dev/null && pwd)
else
echo "$path"
fi
done
}
visualvm_clusters=`readClusters | absolutize_paths | tr '\012' ':'`
if [ ! -z "$visualvm_extraclusters" ] ; then
visualvm_clusters ="$visualvm_clusters:$visualvm_extraclusters"
fi
heap_size () {
mem=640
case "`uname`" in
Linux*)
mem=`cat /proc/meminfo | grep MemTotal | tr -d [:space:][:alpha:]:`
mem=`expr $mem / 1024`
;;
SunOS*)
mem=`/usr/sbin/prtconf | grep Memory | /usr/bin/tr -dc '[0-9]'`
;;
Darwin*)
mem=`/usr/sbin/sysctl hw.memsize | tr -d [:alpha:][:space:].:`
mem=`expr $mem / 1048576`
;;
*)
;;
esac
if [ -z "$mem" ] ; then
mem=640
fi
mem=`expr $mem / 5`
if [ $mem -gt 1024 ] ; then
mem=1024
elif [ $mem -lt 96 ] ; then
mem=96
fi
max_heap_size=$mem
return 0
}
if grep -v -- "-J-Xmx" >/dev/null <<EOF ; then
${visualvm_default_options}
EOF
heap_size
visualvm_default_options="-J-Xmx${max_heap_size}m ${visualvm_default_options}"
fi
launchNbexec() {
nbexec=`grep -v "^#" "$basedir"/etc/visualvm.clusters | grep -v "^$" | grep platform | while read X; do
if expr "$X" : "/.*" >/dev/null; then
echo $X/lib/nbexec
elif [ -f "$basedir"/$X/lib/nbexec ]; then
echo "$basedir"/$X/lib/nbexec
fi
done | head -n 1`
if [ \! -n "$nbexec" ] ; then
nbexec="$basedir"/platform/lib/nbexec
fi
sh=sh
# #73162: Ubuntu uses the ancient Bourne shell, which does not implement trap well.
if [ -x /bin/bash ]
then
sh=/bin/bash
fi
if [ "${founduserdir}" = "yes" ]; then
exec $sh "$nbexec" "$@"
else
if [ "${foundcachedir}" = "yes" ]; then
exec $sh "$nbexec" --userdir "${userdir}" "$@"
else
exec $sh "$nbexec" --userdir "${userdir}" --cachedir "${cachedir}" "$@"
fi
fi
}
# in case of macosx, the apple.laf.useScreenMenuBar property should be ideally in the Info.plist file
# but it doesn't get propagated into the executed java VM.
case "`uname`" in
Darwin*)
eval launchNbexec \
--jdkhome '"$visualvm_jdkhome"' \
-J-Dcom.apple.mrj.application.apple.menu.about.name=VisualVM \
-J-Xdock:name=VisualVM \
'"-J-Xdock:icon=$basedir/etc/visualvm.icns"' \
--branding visualvm \
--clusters '"$visualvm_clusters"' \
${visualvm_default_options} \
'"$@"'
;;
*)
eval launchNbexec \
--jdkhome '"$visualvm_jdkhome"' \
--branding visualvm \
--clusters '"$visualvm_clusters"' \
${visualvm_default_options} \
'"$@"'
;;
esac