Skip to content

Instantly share code, notes, and snippets.

@also
Last active June 1, 2021 09:02
Show Gist options
  • Save also/7729708 to your computer and use it in GitHub Desktop.
Save also/7729708 to your computer and use it in GitHub Desktop.
how does /usr/libexec/java_home work?
# /usr/libexec/java_home -X
$ sudo opensnoop -n java_home
UID PID COMM FD PATH
501 79809 java_home 3 /System/Library/PrivateFrameworks/JavaLaunching.framework/Versions/A/JavaLaunching
501 79809 java_home 3 /dev/dtracehelper
501 79809 java_home 4 /System/Library/CoreServices/SystemVersion.bundle//English.lproj
501 79809 java_home -1 /System/Library/CoreServices/SystemVersion.bundle//Base.lproj
501 79809 java_home 4 /System/Library/CoreServices/SystemVersion.bundle/English.lproj/SystemVersion.strings
501 79809 java_home -1 /System/Library/CoreServices/SystemVersion.bundle/English.lproj/SystemVersion.stringsdict
501 79809 java_home 3 /usr/share/icu/icudt51l.dat
501 79809 java_home 3 /System/Library/CoreServices/SystemVersion.plist
501 79809 java_home 3 /System/Library/CoreServices/SystemVersion.bundle
501 79809 java_home 3 /System/Library/CoreServices/SystemVersion.bundle
501 79809 java_home 3 /usr/libexec
501 79809 java_home 3 /usr/libexec
501 79809 java_home 3 /usr/libexec/java_home
501 79809 java_home 3 /System/Library/CoreServices/SystemVersion.bundle/
501 79809 java_home 3 /System/Library/CoreServices/SystemVersion.bundle
501 79809 java_home 3 /usr/libexec
501 79809 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework
501 79809 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources
501 79809 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources/Info.plist
501 79809 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources
501 79809 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources
501 79809 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources/English.lproj
501 79809 java_home -1 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources/Base.lproj
501 79809 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources/English.lproj/InfoPlist.strings
501 79809 java_home -1 /Users/ryan/Library/Java/JavaVirtualMachines
501 79809 java_home -1 /Users/ryan/Developer/Java/JavaVirtualMachines
501 79809 java_home 4 /Library/Java/JavaVirtualMachines
501 79809 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk
501 79809 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents
501 79809 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Info.plist
501 79809 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk
501 79809 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents
501 79809 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Info.plist
501 79809 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Resources
501 79809 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Resources
501 79809 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Resources/English.lproj
501 79809 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Resources/Base.lproj
501 79809 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/MacOS/libjli.dylib
501 79809 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/MacOS/libjli.dylib
501 79809 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Resources
501 79809 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Resources
501 79809 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Resources/English.lproj
501 79809 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Resources/Base.lproj
501 79809 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/MacOS/libjli.dylib
501 79809 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/MacOS/libjli.dylib
501 79809 java_home -1 /Developer/Java/JavaVirtualMachines
501 79809 java_home 4 /System/Library/Java/JavaVirtualMachines
501 79809 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk
501 79809 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
501 79809 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Info.plist
501 79809 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Resources
501 79809 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Resources
501 79809 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Resources/English.lproj
501 79809 java_home -1 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Resources/Base.lproj
501 79809 java_home -1 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/MacOS/libjava.jnilib
501 79809 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/MacOS/libjava.jnilib
501 79809 java_home -1 /Developer/Java/JavaVirtualMachines
501 79809 java_home 4 /System/Library/CoreServices/JavaVersion.plist
$ plutil -convert xml1 -o - ~/Library/Preferences/ByHost/com.apple.java.JavaPreferences.E158E639-6D49-5DD9-8127-9EFD5C21DDFC.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>GeneralByTask</key>
<dict>
<key>Any</key>
<dict>
<key>PrefsVersion</key>
<integer>2</integer>
</dict>
</dict>
<key>PreferredJVMOrder</key>
<dict>
<key>Any</key>
<array>
<dict>
<key>JVMArch</key>
<string>x86_64</string>
<key>JVMBundleID</key>
<string>com.apple.javajdk16</string>
<key>JVMHomePath</key>
<string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home</string>
<key>JVMPlatformVersion</key>
<string>1.6</string>
<key>JVMVendor</key>
<string>Apple Inc.</string>
<key>JVMVersion</key>
<string>1.6.0_65-b14-462</string>
</dict>
<dict>
<key>JVMArch</key>
<string>x86_64</string>
<key>JVMBundleID</key>
<string>com.oracle.java.7u45.jdk</string>
<key>JVMHomePath</key>
<string>/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home</string>
<key>JVMPlatformVersion</key>
<string>1.7</string>
<key>JVMVendor</key>
<string>Oracle Corporation</string>
<key>JVMVersion</key>
<string>1.7.0_45</string>
</dict>
<dict>
<key>JVMArch</key>
<string>i386</string>
<key>JVMBundleID</key>
<string>com.apple.javajdk16</string>
<key>JVMHomePath</key>
<string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home</string>
<key>JVMPlatformVersion</key>
<string>1.6</string>
<key>JVMVendor</key>
<string>Apple Inc.</string>
<key>JVMVersion</key>
<string>1.6.0_65-b14-462</string>
</dict>
<dict>
<key>JVMArch</key>
<string>x86_64</string>
<key>JVMBundleID</key>
<string>com.oracle.java.8u.jdk</string>
<key>JVMHomePath</key>
<string>/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home</string>
<key>JVMPlatformVersion</key>
<string>1.8</string>
<key>JVMVendor</key>
<string>Oracle Corporation</string>
<key>JVMVersion</key>
<string>1.8.0</string>
</dict>
</array>
</dict>
</dict>
</plist>
# /usr/libexec/java_home
$ sudo opensnoop -n java_home
UID PID COMM FD PATH
501 80076 java_home 3 /System/Library/PrivateFrameworks/JavaLaunching.framework/Versions/A/JavaLaunching
501 80076 java_home 3 /dev/dtracehelper
501 80076 java_home 3 /usr/share/icu/icudt51l.dat
501 80076 java_home 3 /System/Library/CoreServices/SystemVersion.plist
501 80076 java_home 3 /System/Library/CoreServices/SystemVersion.bundle
501 80076 java_home 3 /System/Library/CoreServices/SystemVersion.bundle
501 80076 java_home 3 /usr/libexec
501 80076 java_home 3 /usr/libexec
501 80076 java_home 3 /usr/libexec/java_home
501 80076 java_home 3 /System/Library/CoreServices/SystemVersion.bundle/
501 80076 java_home 3 /System/Library/CoreServices/SystemVersion.bundle
501 80076 java_home 3 /usr/libexec
501 80076 java_home 4 /System/Library/CoreServices/SystemVersion.bundle//English.lproj
501 80076 java_home -1 /System/Library/CoreServices/SystemVersion.bundle//Base.lproj
501 80076 java_home 4 /System/Library/CoreServices/SystemVersion.bundle/English.lproj/SystemVersion.strings
501 80076 java_home -1 /System/Library/CoreServices/SystemVersion.bundle/English.lproj/SystemVersion.stringsdict
501 80076 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework
501 80076 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources
501 80076 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources/Info.plist
501 80076 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources
501 80076 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources
501 80076 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources/English.lproj
501 80076 java_home -1 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources/Base.lproj
501 80076 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources/English.lproj/InfoPlist.strings
501 80076 java_home -1 /Users/ryan/Library/Java/JavaVirtualMachines
501 80076 java_home -1 /Users/ryan/Developer/Java/JavaVirtualMachines
501 80076 java_home 4 /Library/Java/JavaVirtualMachines
501 80076 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk
501 80076 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents
501 80076 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Info.plist
501 80076 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk
501 80076 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents
501 80076 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Info.plist
501 80076 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Resources
501 80076 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Resources
501 80076 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Resources/English.lproj
501 80076 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Resources/Base.lproj
501 80076 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/MacOS/libjli.dylib
501 80076 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/MacOS/libjli.dylib
501 80076 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Resources
501 80076 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Resources
501 80076 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Resources/English.lproj
501 80076 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Resources/Base.lproj
501 80076 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/MacOS/libjli.dylib
501 80076 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/MacOS/libjli.dylib
501 80076 java_home -1 /Developer/Java/JavaVirtualMachines
501 80076 java_home 4 /System/Library/Java/JavaVirtualMachines
501 80076 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk
501 80076 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
501 80076 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Info.plist
501 80076 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Resources
501 80076 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Resources
501 80076 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Resources/English.lproj
501 80076 java_home -1 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Resources/Base.lproj
501 80076 java_home -1 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/MacOS/libjava.jnilib
501 80076 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/MacOS/libjava.jnilib
501 80076 java_home -1 /Developer/Java/JavaVirtualMachines
501 80076 java_home 4 /System/Library/CoreServices/JavaVersion.plist
$ JAVA_DETECTION_VERBOSE=true /usr/libexec/java_home
2013-12-01 03:13:39.441 java_home[79898:507] [JVM Detection] AddJVMsFromLibraryPath: Scanning: file://localhost/Users/ryan/Library/
2013-12-01 03:13:39.442 java_home[79898:507] [JVM Detection] AddJVMsFromLibraryPath: Scanning: file://localhost/Users/ryan/Developer/
2013-12-01 03:13:39.442 java_home[79898:507] [JVM Detection] AddJVMsFromLibraryPath: Scanning: file://localhost/Library/
2013-12-01 03:13:39.443 java_home[79898:507] [JVM Detection] AddJVMsFromSampledFile: Checking for a JVM at: libjli.dylib -- file://localhost/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/MacOS/
2013-12-01 03:13:39.444 java_home[79898:507] [JVM Detection] Match: Could not find constraint for JVMMaximumSystemVersion
2013-12-01 03:13:39.444 java_home[79898:507] [JVM Detection] Match: Could not find constraint for JVMMaximumFrameworkVersion
2013-12-01 03:13:39.445 java_home[79898:507] [JVM Detection] AddJVMsFromSampledFile: JVM has capabilities: (
CommandLine
)
2013-12-01 03:13:39.445 java_home[79898:507] [JVM Detection] AddJVMsFromSampledFile: Checking for a JVM at: libjli.dylib -- file://localhost/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/MacOS/
2013-12-01 03:13:39.446 java_home[79898:507] [JVM Detection] Match: Could not find constraint for JVMMaximumSystemVersion
2013-12-01 03:13:39.446 java_home[79898:507] [JVM Detection] Match: Could not find constraint for JVMMaximumFrameworkVersion
2013-12-01 03:13:39.447 java_home[79898:507] [JVM Detection] AddJVMsFromSampledFile: JVM has capabilities: (
CommandLine
)
2013-12-01 03:13:39.447 java_home[79898:507] [JVM Detection] AddJVMsFromLibraryPath: Scanning: file://localhost/Developer/
2013-12-01 03:13:39.448 java_home[79898:507] [JVM Detection] AddJVMsFromLibraryPath: Scanning: file://localhost/System/Library/
2013-12-01 03:13:39.448 java_home[79898:507] [JVM Detection] AddJVMsFromSampledFile: Checking for a JVM at: libjava.jnilib -- file://localhost/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/MacOS/
2013-12-01 03:13:39.449 java_home[79898:507] [JVM Detection] AddJVMsFromSampledFile: JVM has capabilities: (
JNI,
BundledApp,
WebStart,
Applets,
CommandLine
)
2013-12-01 03:13:39.450 java_home[79898:507] [JVM Detection] AddJVMsFromLibraryPath: Scanning: file://localhost/Developer/
/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
$ JAVA_LAUNCHER_VERBOSE=true /usr/libexec/java_home
2013-12-01 03:16:03.056 java_home[79908:507] [JVM Detection] AddJVMsFromLibraryPath: Scanning: file://localhost/Users/ryan/Library/
2013-12-01 03:16:03.057 java_home[79908:507] [JVM Detection] AddJVMsFromLibraryPath: Scanning: file://localhost/Users/ryan/Developer/
2013-12-01 03:16:03.058 java_home[79908:507] [JVM Detection] AddJVMsFromLibraryPath: Scanning: file://localhost/Library/
2013-12-01 03:16:03.059 java_home[79908:507] [JVM Detection] AddJVMsFromSampledFile: Checking for a JVM at: libjli.dylib -- file://localhost/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/MacOS/
2013-12-01 03:16:03.060 java_home[79908:507] [JVM Detection] Match: Could not find constraint for JVMMaximumSystemVersion
2013-12-01 03:16:03.061 java_home[79908:507] [JVM Detection] Match: Could not find constraint for JVMMaximumFrameworkVersion
2013-12-01 03:16:03.061 java_home[79908:507] [JVM Detection] AddJVMsFromSampledFile: JVM has capabilities: (
CommandLine
)
2013-12-01 03:16:03.062 java_home[79908:507] [JVM Detection] AddJVMsFromSampledFile: Checking for a JVM at: libjli.dylib -- file://localhost/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/MacOS/
2013-12-01 03:16:03.063 java_home[79908:507] [JVM Detection] Match: Could not find constraint for JVMMaximumSystemVersion
2013-12-01 03:16:03.063 java_home[79908:507] [JVM Detection] Match: Could not find constraint for JVMMaximumFrameworkVersion
2013-12-01 03:16:03.063 java_home[79908:507] [JVM Detection] AddJVMsFromSampledFile: JVM has capabilities: (
CommandLine
)
2013-12-01 03:16:03.064 java_home[79908:507] [JVM Detection] AddJVMsFromLibraryPath: Scanning: file://localhost/Developer/
2013-12-01 03:16:03.064 java_home[79908:507] [JVM Detection] AddJVMsFromLibraryPath: Scanning: file://localhost/System/Library/
2013-12-01 03:16:03.065 java_home[79908:507] [JVM Detection] AddJVMsFromSampledFile: Checking for a JVM at: libjava.jnilib -- file://localhost/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/MacOS/
2013-12-01 03:16:03.066 java_home[79908:507] [JVM Detection] AddJVMsFromSampledFile: JVM has capabilities: (
JNI,
BundledApp,
WebStart,
Applets,
CommandLine
)
2013-12-01 03:16:03.067 java_home[79908:507] [JVM Detection] AddJVMsFromLibraryPath: Scanning: file://localhost/Developer/
available JVMs:
1.8.0, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
1.7.0_45, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Matching Java Virtual Machines (4):
1.8.0, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
1.7.0_45, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
$ strings /System/Library/PrivateFrameworks/JavaLaunching.framework/JavaLaunching
JVMArch
x86_64
JVMVersion
%s: NULL task.
JLSetPreferredOrderForTask
CreateCompleteJVMListSortedByUserPrefsForTask
com.apple.java.jvmTask
BundledApp
Applications
Applets
WebStart
JVMName
JVMBundleID
JVMPlatformVersion
JVMVendor
JVMHomePath
JVMIsBuiltIn
JVMEnabled
JVMBlacklisted
[JVM Detection] %s: Checking for a JVM at: %@
AddJVMsFromSampledFile
JavaVM
JVMCapabilities
[JVM Detection] %s: JVM has capabilities: %@
i386
Home
[JVM Detection] %s: Scanning: %@
AddJVMsFromLibraryPath
Java/JavaVirtualMachines
/System/Library
hw.optional.x86_64
AppletAllowBlacklistedJVMs
WebStartAllowBlacklistedJVMs
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta.plist
JavaAppletVersionMinimum
JavaWebStartVersionMinimum
JavaAppletVersionBlacklist
JavaWebStartVersionBlacklist
[JVM Detection] %s: failed to calloc JVMDetector
CreateJVMDetector
JVMUserData
Could not find constraint for
Could not parse constraint for
Constraint
) did not match:
[JVM Detection] %s: %@
Match
JVMMinimumSystemVersion
JVMMaximumSystemVersion
JVMMinimumFrameworkVersion
JVMMaximumFrameworkVersion
com.apple.JavaLaunching
/System/Library/PrivateFrameworks/JavaLaunching.framework
[JVM Detection] %s: failed to create CFNumberFormatter
FillMatcher
[JVM Detection] %s: failed to get system version
[JVM Detection] %s: failed to get JavaVM.framework version
[JVM Detection] %s: failed to calloc JVM matcher
MakeMatcher
PreferredJVMOrder
GeneralByTask
com.apple.java.JavaPreferences
JAVA_LAUNCHER_VERBOSE
JAVA_DETECTION_VERBOSE
true
drain
postNotificationName:object:
defaultCenter
autorelease
%s: No options dictionary
JLRequestRuntimeInstall
kJLRuntimeInstallRequestAppURL
%s: Error creating CFData: %@
com.apple.java.installondemand
%s: Error calling: CFMessagePortCreateRemote
%s: CFMessagePortSendRequest: error %d
WebComponentsLastUsed
WebComponentsEnabled
kJLJavaWebComponentsEnabledStateChanged
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk
/System/Library/Java/Support/Deploy.bundle
JLI_MemAlloc
$ plutil -convert json -o - /System/Library/CoreServices/JavaVersion.plist
{"ProductBuildVersion":"11M4609","ProductCopyright":"2013 Apple Inc.","ProductVersion":"2013-005","ProductName":"Java for OS X"}
$ strings /usr/libexec/java_home
v:a:d:t:RXFVhz
version
arch
datamodel
task
request
failfast
exec
verbose
help
report
i386
x86_64
Usage: %s [options...]
Returns the path to a Java home directory from the current user's settings.
Options:
[-v/--version <version>] Filter Java versions in the "JVMVersion" form 1.X(+ or *).
[-a/--arch <architecture>] Filter JVMs matching architecture (i386, x86_64, etc).
[-d/--datamodel <datamodel>] Filter JVMs capable of -d32 or -d64
[-t/--task <task>] Use the JVM list for a specific task (Applets, WebStart, BundledApp, JNI, or CommandLine)
[-F/--failfast] Fail when filters return no JVMs, do not continue with default.
[ --exec <command> ...] Execute the $JAVA_HOME/bin/<command> with the remaining arguments.
[-R/--request] Request installation of a Java Runtime if not installed.
[-X/--xml] Print full JVM list and additional data as XML plist.
[-V/--verbose] Print full JVM list with architectures.
[-h/--help] This usage information.
CommandLine
applet
Applets
application
Applications
BundledApp
WebStart
Unknown task: %s
Unable to find any JVMs matching architecture "%s".
Unable to find any JVMs matching version "%s".
/System/Library/CoreServices/JavaVersion.plist
ProductBuildVersion
com.apple.message.domain
com.apple.java.usage2.InstalledJVMs
com.apple.java.usage.CommandLine_JavaHome
com.apple.message.domain.version
task:%s version:%s arch:%s
com.apple.message.signature
com.apple.message.signature2
com.apple.message.value
Level
Info
Message
Matching Java Virtual Machines (%ld):
JVMHomePath
ISMAC
java_home detected $ISMAC set with --failfast, implicitly adding --request
Default Java Virtual Machines (%ld):
No Java runtime present, try --request to install.
JAVA_HOME
There do not appear to be any valid Java versions on this machine (NULL).
no JVMs matching version "%s":
got environment variable %s: "%s"
JVMVersion
JAVA_VERSION
JVMArch
JAVA_ARCH
There do not appear to be any valid Java versions on this machine (0).
JVMName
%s, %s:
"%s"
available JVMs:
kJLRuntimeInstallRequestTask
kJLRuntimeInstallRequestIdentifier
kJLRuntimeInstallRequestAppURL
kJLRuntimeInstallRequestIsTTY
No Java runtime present, requesting install.
%s%s
/Library/Internet Plug-ins/JavaAppletPlugin.plugin/Contents/Home
%s/bin/%s
[JavaCommandLine]
failed to spawn with err (%d)
failed to exec with err (%d)
Unable to launch "%s" (%d)
Unable to locate an executable at "%s" (%d)
%s error in posix_spawnattr_init: %d
%s error in posix_spawnattr_setflags: %d
%s error in posix_spawnattr_setbinpref_np: %d
True
(null)
JAVA_LAUNCHER_VERBOSE
(null)
(null)
$ sudo opensnoop | grep Java
501 182 SystemUIServer 10 /Applications/Utilities/Java Preferences.app
501 182 SystemUIServer 10 /Applications/Utilities/Java Preferences.app/Contents
501 182 SystemUIServer 10 /Applications/Utilities/Java Preferences.app/Contents/Info.plist
501 182 SystemUIServer 10 /Applications/Utilities/Java Preferences.app/Contents/Info.plist
501 182 SystemUIServer 10 /Applications/Utilities/Java Preferences.app/Contents/Resources
501 182 SystemUIServer 10 /Applications/Utilities/Java Preferences.app/Contents/Resources
501 182 SystemUIServer 10 /Applications/Utilities/Java Preferences.app/Contents/Resources/English.lproj
501 182 SystemUIServer -1 /Applications/Utilities/Java Preferences.app/Contents/Resources/Base.lproj
501 182 SystemUIServer 10 /Applications/Utilities/Java Preferences.app/Contents/PkgInfo
501 182 SystemUIServer 10 /Applications/Utilities/Java Preferences.app/Contents/MacOS/Java Preferences
501 81037 Java Preference 36 /dev/dtracehelper
501 81037 Java Preference 36 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/libdcpr.jnilib
501 168 cfprefsd 4 /Users/ryan/Library/Preferences/ByHost/com.apple.java.JavaPreferences.E158E639-6D49-5DD9-8127-9EFD5C21DDFC.plist.Trm1xwa
501 81037 Java Preference 36 /Users/ryan/Library/Saved Application State/com.apple.java.JavaPreferences.savedState/data.data
501 81037 Java Preference 36 /Users/ryan/Library/Saved Application State/com.apple.java.JavaPreferences.savedState/windows.plist
501 168 cfprefsd 4 /Users/ryan/Library/Preferences/ByHost/com.apple.java.JavaPreferences.E158E639-6D49-5DD9-8127-9EFD5C21DDFC.plist.Trm1xwa
501 81037 Java Preference 36 /Library/Application Support/CrashReporter/SubmitDiagInfo.domains
# /usr/libexec/java_home
$ sudo opensnoop | grep -i java
501 81122 java_home 3 /System/Library/PrivateFrameworks/JavaLaunching.framework/Versions/A/JavaLaunching
501 81122 java_home 3 /dev/dtracehelper
501 168 cfprefsd -1 /Library/Managed Preferences/ryan/java_home.plist
501 168 cfprefsd -1 /Library/Managed Preferences/ryan/java_home.plist
501 168 cfprefsd -1 /Users/ryan/Library/Preferences/java_home.plist
501 168 cfprefsd -1 /Users/ryan/Library/Preferences/java_home.plist
0 24 cfprefsd -1 /Library/Preferences/java_home.plist
0 24 cfprefsd -1 /Library/Preferences/java_home.plist
501 81122 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework
501 81122 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources
501 81122 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources/Info.plist
501 81122 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources
501 81122 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources
501 81122 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources/English.lproj
501 81122 java_home -1 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources/Base.lproj
501 81122 java_home 4 /System/Library/PrivateFrameworks/JavaLaunching.framework/Resources/English.lproj/InfoPlist.strings
501 81122 java_home -1 /Users/ryan/Library/Java/JavaVirtualMachines
501 81122 java_home -1 /Users/ryan/Developer/Java/JavaVirtualMachines
501 81122 java_home 4 /Library/Java/JavaVirtualMachines
501 81122 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk
501 81122 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents
501 81122 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Info.plist
501 81122 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk
501 81122 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents
501 81122 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Info.plist
501 81122 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Resources
501 81122 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Resources
501 81122 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Resources/English.lproj
501 81122 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Resources/Base.lproj
501 81122 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/MacOS/libjli.dylib
501 81122 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/MacOS/libjli.dylib
501 81122 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Resources
501 81122 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Resources
501 81122 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Resources/English.lproj
501 81122 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Resources/Base.lproj
501 81122 java_home -1 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/MacOS/libjli.dylib
501 81122 java_home 4 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/MacOS/libjli.dylib
501 81122 java_home -1 /Developer/Java/JavaVirtualMachines
501 81122 java_home 4 /System/Library/Java/JavaVirtualMachines
501 81122 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk
501 81122 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
501 81122 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Info.plist
501 81122 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Resources
501 81122 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Resources
501 81122 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Resources/English.lproj
501 81122 java_home -1 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Resources/Base.lproj
501 81122 java_home -1 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/MacOS/libjava.jnilib
501 81122 java_home 4 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/MacOS/libjava.jnilib
501 81122 java_home -1 /Developer/Java/JavaVirtualMachines
501 81122 java_home 4 /System/Library/CoreServices/JavaVersion.plist
501 81122 java_home 3 /usr/share/icu/icudt51l.dat
501 81122 java_home 3 /System/Library/CoreServices/SystemVersion.plist
501 81122 java_home 3 /System/Library/CoreServices/SystemVersion.bundle
501 81122 java_home 3 /System/Library/CoreServices/SystemVersion.bundle
501 81122 java_home 3 /usr/libexec
501 81122 java_home 3 /usr/libexec
501 81122 java_home 3 /usr/libexec/java_home
501 81122 java_home 3 /System/Library/CoreServices/SystemVersion.bundle/
501 81122 java_home 3 /System/Library/CoreServices/SystemVersion.bundle
501 81122 java_home 3 /usr/libexec
0 24 cfprefsd -1 /Library/Managed Preferences/java_home.plist
0 24 cfprefsd -1 /Library/Managed Preferences/java_home.plist
501 168 cfprefsd -1 /Users/ryan/Library/Preferences/ByHost/java_home.E158E639-6D49-5DD9-8127-9EFD5C21DDFC.plist
501 168 cfprefsd -1 /Users/ryan/Library/Preferences/ByHost/java_home.E158E639-6D49-5DD9-8127-9EFD5C21DDFC.plist
501 81122 java_home 4 /System/Library/CoreServices/SystemVersion.bundle//English.lproj
501 81122 java_home -1 /System/Library/CoreServices/SystemVersion.bundle//Base.lproj
501 81122 java_home 4 /System/Library/CoreServices/SystemVersion.bundle/English.lproj/SystemVersion.strings
501 81122 java_home -1 /System/Library/CoreServices/SystemVersion.bundle/English.lproj/SystemVersion.stringsdict
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment