macOS JavaApplicationSupport-325
macOS 15.7.3 (24G419)
JavaApplicationSupport-325
/usr/libexec/java_home
The information property file, Info.plist, is located in the top-level Contents/ directory. This allows jdk to integrate with the macOS-specific /usr/libexec/java_home mechanism.
java_home(1)
java_home(1) General Commands Manual java_home(1)
NAME
java_home - return a value for $JAVA_HOME
SYNOPSIS
/usr/libexec/java_home [options]
DESCRIPTION
The java_home command returns a path suitable for setting the JAVA_HOME environment variable. It
determines this path from the user's preferred JVM based on configured environment variables. Additional
constraints may be provided to filter the list of JVMs available. By default, if no constraints match the
available list of JVMs, the default order is used. The path is printed to standard output.
OPTIONS
-v or --version version
Filters the returned JVMs by version (as if JAVA_VERSION had been set in the environment). Example
versions: "11.0", or "14.0.2".
-a or --arch architecture
Filters the returned JVMs by the architecture they support (as if JAVA_ARCH had been set in the
environment). Example architectures: "x86_64", or "arm64".
-F or --failfast
Immediately fails when filters return no JVMs; does not print out the path to the default
$JAVA_HOME.
--exec command ...
Executes the command at $JAVA_HOME/bin/<command> and passes the remaining arguments. Any arguments
to select which $JAVA_HOME to use must precede the --exec option.
-X or --xml
Prints a list of all matching JVMs and associated properties as an XML plist to stdout.
-V or --verbose
Prints a list of all matching JVMs and architectures to stderr.
-h or --help
Brief usage information.
USAGE
/usr/libexec/java_home helps users set a $JAVA_HOME in their login rc files, or provides a way for command-
line Java tools to use the most appropriate JVM which can satisfy a minimum version or architecture
requirement. The --exec argument can invoke tools in the selected $JAVA_HOME/bin directory, which is useful
for starting Java command-line tools from launchd plists without hardcoding the full path to the Java
command-line tool.
Usage for bash-style shells:
$ export JAVA_HOME=`/usr/libexec/java_home`
Usage for csh-style shells:
% setenv JAVA_HOME `/usr/libexec/java_home`
July 15, 2020 java_home(1)
/usr/bin/java
| jar | javadoc | jdb | jinfo | jps | jstatd |
| jarsigner | javap | jdeps | jlink | jrunscript | keytool |
| java | jcmd | jhsdb | jmap | jshell | rmiregistry |
| javac | jconsole | jimage | jpackage | jstack | serialver |
/System/Library/PrivateFrameworks/JavaLaunching.framework
System/Library/PrivateFrameworks/JavaLaunching.framework/JavaLaunching.tbd
-- !tapi-tbd
tbd-version: 4
targets: [ x86_64-macos, arm64-macos, arm64e-macos ]
install-name: '/System/Library/PrivateFrameworks/JavaLaunching.framework/Versions/A/JavaLaunching'
current-version: 325
exports:
- targets: [ x86_64-macos, arm64-macos, arm64e-macos ]
objc-classes: [ JLArchitecture, JLRuntime ]
...
/System/Library/Frameworks/JavaRuntimeSupport.framework
System/Library/Frameworks/JavaRuntimeSupport.framework/JavaRuntimeSupport.tbd
--- !tapi-tbd
tbd-version: 4
targets: [ x86_64-macos, arm64-macos, arm64e-macos ]
install-name: '/System/Library/Frameworks/JavaRuntimeSupport.framework/Versions/A/JavaRuntimeSupport'
current-version: 84
exports:
- targets: [ x86_64-macos ]
symbols: [ _JRSCopyCanonicalLanguageForPrimaryLanguage, _JRSCopyOSJavaSupportVersion,
_JRSCopyOSName, _JRSCopyOSVersion, _JRSCopyPrimaryLanguage,
_JRSSetDefaultLocalization ]
objc-classes: [ JRSSecurity ]
- targets: [ x86_64-macos, arm64-macos, arm64e-macos ]
symbols: [ '$ld$previous$/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/JavaRuntimeSupport$$1$10.0$10.16$$',
_JRSAccessibilityUnregisterUniqueIdForUIElement, _JRSFontAlignStyleForFractionalMeasurement,
_JRSFontAlignStyleForIntegerMeasurement, _JRSFontCreateFallbackFontForCharacters,
_JRSFontGetAdvancesForGlyphsAndStyle, _JRSFontGetBoundingBoxesForGlyphsAndStyle,
_JRSFontGetRenderingStyleForContext, _JRSFontGetRenderingStyleForHints,
_JRSFontSetRenderingStyleOnContext, _JRSFontStyleIsAntialiased,
_JRSFontStyleUsesFractionalMetrics, _JRSMenuDidReuseItemNotification,
_JRSUIControlCreate, _JRSUIControlDraw, _JRSUIControlGetHitPart,
_JRSUIControlGetScrollBarOffsetFor, _JRSUIControlGetScrollBarPartBounds,
_JRSUIControlRelease, _JRSUIControlSetAlignmentHorizontal,
_JRSUIControlSetAlignmentVertical, _JRSUIControlSetAnimating,
_JRSUIControlSetDirection, _JRSUIControlSetOrientation, _JRSUIControlSetPresentationState,
_JRSUIControlSetScrollBarPart, _JRSUIControlSetSegmentPosition,
_JRSUIControlSetShowArrows, _JRSUIControlSetSize, _JRSUIControlSetState,
_JRSUIControlSetUserInterfaceLayoutDirection, _JRSUIControlSetValueByKey,
_JRSUIControlSetVariant, _JRSUIControlSetWidget, _JRSUIControlSetWindowType,
_JRSUIControlShouldScrollToClick, _JRSUIGetKey, _JRSUIRendererCreate,
_JRSUIRendererRelease ]
objc-classes: [ JRSAppKitAWT, JRSDrag, JRSInputMethodController, JRSRenderServer,
JRSSymbolicator ]
...
/System/Library/CoreServices/JavaLauncher.app
version.plist
Contents/version.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>BuildVersion</key>
<string>2556</string>
<key>CFBundleShortVersionString</key>
<string>325</string>
<key>CFBundleVersion</key>
<string>325</string>
<key>ProjectName</key>
<string>JavaApplicationSupport</string>
<key>SourceVersion</key>
<string>325000000000000</string>
</dict>
</plist>
Info.plist
CFBundleDocumentTypes: class, jar, jnlp
LSUIElement: True
Contents/Info.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>BuildMachineOSBuild</key>
<string>23A344014</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>class</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>class.icns</string>
<key>CFBundleTypeName</key>
<string>Java class file</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSIsAppleDefaultForType</key>
<true/>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>jar</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>jar.icns</string>
<key>CFBundleTypeName</key>
<string>Java JAR file</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSIsAppleDefaultForType</key>
<true/>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>jnlp</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>jnlp.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-java-jnlp-file</string>
</array>
<key>CFBundleTypeName</key>
<string>Java network launch protocol file</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
</array>
<key>CFBundleExecutable</key>
<string>JavaLauncher</string>
<key>CFBundleIconFile</key>
<string>JavaLauncher.icns</string>
<key>CFBundleIdentifier</key>
<string>com.apple.JavaLauncher</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>JavaLauncher</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>325</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>325</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string></string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>15.7</string>
<key>DTSDKBuild</key>
<string>24G201t</string>
<key>DTSDKName</key>
<string>macosx15.7.internal</string>
<key>DTXcode</key>
<string>1630</string>
<key>DTXcodeBuild</key>
<string>16E6052g</string>
<key>LSMinimumSystemVersion</key>
<string>15.7</string>
<key>LSUIElement</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2005-2020, Apple Inc. All Rights Reserved.</string>
<key>NSMainNibFile</key>
<string>Default</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>
entitlements
codesign -d -vvv --entitlements - --xml
% codesign -d -vvv --entitlements - --xml /System/Library/CoreServices/JavaLauncher.app
Executable=/System/Library/CoreServices/JavaLauncher.app/Contents/MacOS/JavaLauncher
Identifier=com.apple.JavaLauncher
Format=app bundle with Mach-O universal (x86_64 arm64e)
CodeDirectory v=20400 size=879 flags=0x0(none) hashes=17+7 location=embedded
Platform identifier=16
Hash type=sha256 size=32
CandidateCDHash sha256=52d60eb523923f7f22e05c2e3c6f6c76a40062bd
CandidateCDHashFull sha256=52d60eb523923f7f22e05c2e3c6f6c76a40062bd750e68e1f432dc5d647ffd63
Hash choices=sha256
CMSDigest=52d60eb523923f7f22e05c2e3c6f6c76a40062bd750e68e1f432dc5d647ffd63
CMSDigestType=2
CDHash=52d60eb523923f7f22e05c2e3c6f6c76a40062bd
Signature size=4442
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
Signed Time=Jul 21, 2025 at 11:33:36
Info.plist entries=26
TeamIdentifier=not set
Sealed Resources version=2 rules=2 files=0
Internal requirements count=1 size=72
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>com.apple.private.tcc.allow-prompting</key><array><string>kTCCServiceAll</string></array></dict></plist>
Shared libraries
/System/Library/CoreServices/JavaLauncher.app/Contents/MacOS/JavaLauncher:
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2575.70.52)
/System/Library/PrivateFrameworks/JavaLaunching.framework/Versions/A/JavaLaunching (compatibility version 1.0.0, current version 325.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 3603.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1351.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 3603.0.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 1226.0.0)
Import
/System/Library/PrivateFrameworks/JavaLaunching.framework/Versions/A/JavaLaunching (current version 325.0.0)
+[JLRuntime preferredRuntimeForTool:fallbackOnSupported:error:]
IMPORT __JLRuntime_preferredRuntimeForTool_fallbackOnSupported_error__
-[NSAlert spawnTool:arguments:setExec:error:]
IMPORT __NSAlert_spawnTool_arguments_setExec_error__
JavaLauncher
bool __cdecl -[JavaLauncher application:openFile:](JavaLauncher *self, SEL, id, id)
COMPATIBILITY
/System/Library/Frameworks/JavaVM.framework
/System/Library/Frameworks/JavaNativeFoundation.framework
System/Library/Frameworks/JavaNativeFoundation.framework/JavaNativeFoundation.tbd
--- !tapi-tbd
tbd-version: 4
targets: [ x86_64-macos ]
install-name: '/System/Library/Frameworks/JavaNativeFoundation.framework/Versions/A/JavaNativeFoundation'
current-version: 86
exports:
- targets: [ x86_64-macos ]
symbols: [ '$ld$previous$/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Versions/A/JavaNativeFoundation$$1$10.0$10.16$$',
_JNFAssertionFailure, _JNFCFToJavaBoolean, _JNFCallBooleanMethod,
_JNFCallByteMethod, _JNFCallCharMethod, _JNFCallDoubleMethod,
_JNFCallFloatMethod, _JNFCallIntMethod, _JNFCallLongMethod,
_JNFCallObjectMethod, _JNFCallShortMethod, _JNFCallStaticBooleanMethod,
_JNFCallStaticByteMethod, _JNFCallStaticCharMethod, _JNFCallStaticDoubleMethod,
_JNFCallStaticFloatMethod, _JNFCallStaticIntMethod, _JNFCallStaticLongMethod,
_JNFCallStaticObjectMethod, _JNFCallStaticShortMethod, _JNFCallStaticVoidMethod,
_JNFCallVoidMethod, _JNFDebugWarning, _JNFDeleteGlobalRef,
_JNFDeleteWeakGlobalRef, _JNFDumpJavaStack, _JNFGetBooleanField,
_JNFGetByteField, _JNFGetCharField, _JNFGetDoubleField, _JNFGetFloatField,
_JNFGetIntField, _JNFGetLongField, _JNFGetObjectField, _JNFGetShortField,
_JNFGetStaticBooleanField, _JNFGetStaticByteField, _JNFGetStaticCharField,
_JNFGetStaticDoubleField, _JNFGetStaticFloatField, _JNFGetStaticIntField,
_JNFGetStaticLongField, _JNFGetStaticObjectField, _JNFGetStaticShortField,
_JNFGetStringUTF16UniChars, _JNFGetStringUTF8Chars, _JNFIsInstanceOf,
_JNFJavaMillisToNSTimeInterval, _JNFJavaToCFBoolean, _JNFJavaToNSDate,
_JNFJavaToNSNumber, _JNFJavaToNSString, _JNFNSTimeIntervalToJavaMillis,
_JNFNSToJavaCalendar, _JNFNSToJavaNumber, _JNFNSToJavaString,
_JNFNativeMethodEnter, _JNFNativeMethodExit, _JNFNewBooleanArray,
_JNFNewByteArray, _JNFNewCharArray, _JNFNewDoubleArray, _JNFNewFloatArray,
_JNFNewGlobalRef, _JNFNewIntArray, _JNFNewLongArray, _JNFNewObject,
_JNFNewObjectArray, _JNFNewShortArray, _JNFNewWeakGlobalRef,
_JNFNormalizedJavaStringForPath, _JNFNormalizedNSStringForPath,
_JNFObjectClassName, _JNFObjectEquals, _JNFObjectToString,
_JNFObtainEnv, _JNFPerformEnvBlock, _JNFReleaseEnv, _JNFReleaseStringUTF16UniChars,
_JNFReleaseStringUTF8Chars, _JNFRunLoopDidStartNotification,
_JNFSetBooleanField, _JNFSetByteField, _JNFSetCharField, _JNFSetDoubleField,
_JNFSetFloatField, _JNFSetIntField, _JNFSetLongField, _JNFSetObjectField,
_JNFSetShortField, _JNFSetStaticBooleanField, _JNFSetStaticByteField,
_JNFSetStaticCharField, _JNFSetStaticDoubleField, _JNFSetStaticFloatField,
_JNFSetStaticIntField, _JNFSetStaticLongField, _JNFSetStaticObjectField,
_JNFSetStaticShortField, _kClassNotFoundException, _kIllegalAccessException,
_kIllegalArgumentException, _kNoSuchFieldException, _kNoSuchMethodException,
_kNullPointerException, _kOutOfMemoryError, _kRuntimeException ]
objc-classes: [ JNFDefaultCoercions, JNFException, JNFJObjectWrapper, JNFRunLoop,
JNFRunnable, JNFTypeCoercer, JNFWeakJObjectWrapper ]
objc-eh-types: [ JNFException ]
...
LEGACY
Apple Java 6 for Mac OS X
- Java for OS X 2017-001 (JavaForMacOSX107), http://support.apple.com/kb/DL1572
Mac OS X 10.11 (El Capitan) will be the last OS X release that supports Java 6.
OpenJDK Porject - Mac OS X Port
Note that only Mac OS X 10.7.3 Lion and higher will be an Oracle-supported platform.
MORE
- JavaApplicationStub
- tofi86/universalJavaApplicationStub
- [Guide] Installation of the JDK on macOS

浙公网安备 33010602011771号