深入java虚拟机1-4章, all in sandbox(1)

本文介绍了Java虚拟机(JVM)的基本概念,包括其平台无关性的特点、内存管理方式、依赖问题及安全管理机制。JVM作为沙箱环境,确保了Java程序在不同平台上的可移植性和安全性。

如果你尚未阅读深入java虚拟机,推荐你先阅读深入理解计算机系统。

如果你已经阅读过深入理解计算机系统,推荐你阅读深入java虚拟机。

如果这两本书你都阅读过或者都在阅读,我就不知道说什么好了。

 

java虚拟机(jvm)是建立于一个本地系统之上沙箱之中。

这个基础天生便决定了java的平台平台无关性。

我们所编写的java程序调用java api,由java api调用 本地方法(动态库)操作本地系统。

由此带来了内存管理,安全管理等一系列问题。

java的内存管理

java api没有通过提供强制装换指针或者通过指针运算直接访问内存的方法。

java使用自动垃圾回收机制,通过停止对一个java对象的引用来促使垃圾收集器自动回收这个对象所占据的内存。

java使用数组边界检查而防止出现因此而引发的内存冲突。

 

java的平台无关性

java虚拟机规范规定了java虚拟机中基础类型的规格,因此通过使用不同平台的java虚拟机,而跨越不同的系统平台实现。

因此编写java程序一个很重要的原则就是不要直接或者间接调用不属于java api的本地方法。

 

对java虚拟机的依赖

编写平台独立的java程序时候,要遵循两条原则:

1 不要依赖及时终结来达到程序的正确性

   不同的java虚拟机有不同的垃圾回收机制的实现。

2 不要依赖线程的优先级来达到程序的正确性。

  不同的java虚拟机有不同的线程优先级的实现。为了保障多线程java程序的平台无关性,必须依赖同步机制而不是优先级机制来协调线程。

 

java的安全管理机制

java沙箱机制是java程序运行在一个受限的内存空间。

例如某个java程序产生了outofmemory的异常,只会导致这个java程序终止。并不会导致其他java程序或者其他应用程序终止。

 

java沙箱由以下几部分组成:

类装载器体系结构

class文件检验器

内置于java虚拟机(及语言)的安全特性

安全管理器及java api


类装载器体系结构

类装载器体系结构在三个方面对java沙箱起作用:

1.防止恶意代码去干涉善意代码。

2.守护了被信任的类库的边界

3.将代码归入了保护域,该保护域确定了代码可以进行哪些操作。

类装载器通过为不同的类提供不同的类装载命名空间来防止恶意代码干涉善意代码。相同命名空间内的类可以相互访问而不同命名空间内的类彼此并不可视因而也无法相互访问。

类装载器守护被信任的类库边界通过使用不同的类装载器装载不同的包而实现的。

 

class文件校验器

class文件校验器用来检验class文件的字节码。防止阻止方法内的跳转指令跳到方法之外。

class文件会对一个class文件的字节码序列进行四次扫描

 

1 class文件的结构检查

 java的class文件是以0xCAFEBABE开头作为文件类型标识的。主要检查class文件的完整性,保障这个字节序列遵从class文件的文件格式,这样才能编译成在方法区的内部数据结构。第2,3,4次扫描是在方法区内进行的。

 

2 类型数据的语言检查

检验器检查每个组成部分,确认其是否是所属类型的实例,它们的结构是否正确。其目的是为了确认每个方法描述符都是符合特定格式,格式正确的字符串。还会检查这个类本身是否符合特定的条件。总之,检验器会检验有编译器产生的class文件是否遵守一些java语言在编译时必须遵守的强制规则。

 

3字节码验证

字节码流代表了java的方法,它是由被称为操作码的单字节指令组成的序列。每个操作码后面都跟着一个或者多个操作数(这一点很类似汇编语言的指令)。操作数用于在java虚拟机执行操作码指令时提供所需的额外的数据。执行字节码时,依序执行每个操作码,这样就在java虚拟机内部形成了执行的线程。每个线程被授予自己的java栈。这个栈就是由不同的栈帧组成的。每一个方法的调用将获得一个自己的栈帧(其实就是一个内存片段),其中存储着局部变量和计算的中间结果。在栈帧中用于存储方法的中间结果的部分被称为该方法的操作数栈。操作码和它的(可选)操作数可能指存储在操作数栈中的数据或者存储在方法栈帧中的局部变量中的数据。这样,在执行一个操作码时,除了可以使用紧随其后的操作数,虚拟机还可以使用操作数栈中的数据,或存储在方法栈帧中的局部变量中的数据,或两者都使用。

字节码验证要校验直接码流符合java的操作码和操作数能够被java虚拟机安全地执行。

 

4符号引用的验证

java虚拟机将追踪直接码流中的符号引用,并且确保符号应用的资源可用。如果该资源不可用并不立即抛出noclassdeffounderror错误,而是在运行时,这个类被首次引用时才抛出。

动态连接是将一个符号引用解析为直接引用的过程。当java虚拟机执行字节码时,如果遇到一个操作码,这个操作码第一次使用一个指向另一个类的引用,那么java虚拟机就要解析这个引用。

1)查找被引用的类,如果必要的话就装载它。

2)将符号引用替换为直接引用,例如一个指向一个类,方法或者字段的指针或者偏移量。

 

 

 

uninstall silentlyCommand Line: abort vfprintf -XX:ErrorFile=C:\Users\Administrator\java_error_in_pycharm_%p.log -XX:HeapDumpPath=C:\Users\Administrator\java_error_in_pycharm.hprof -Xms256m -Xmx1500m -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:CICompilerCount=2 -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:TieredOldPercentage=100000 -ea -Dsun.io.useCanonCaches=false -Dsun.java2d.metal=true -Djbr.catch.SIGABRT=true -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Djdk.module.illegalAccess.silent=true -Djdk.nio.maxCachedBufferSize=2097152 -Djava.util.zip.use.nio.for.zip.file.access=true -Dkotlinx.coroutines.debug=off -Dllm.show.ai.promotion.window.on.start=false -Djb.vmOptionsFile=C:\Program Files\JetBrains\PyCharm Community Edition 2025.1.1\bin/pycharm64.exe.vmoptions -Xbootclasspath/a:C:\Program Files\JetBrains\PyCharm Community Edition 2025.1.1/lib/nio-fs.jar -Djava.system.class.loader=com.intellij.util.lang.PathClassLoader -Didea.vendor.name=JetBrains -Didea.paths.selector=PyCharmCE2025.1 -Djna.boot.library.path=C:\Program Files\JetBrains\PyCharm Community Edition 2025.1.1/lib/jna/amd64 -Djna.nosys=true -Djna.noclasspath=true -Dpty4j.preferred.native.folder=C:\Program Files\JetBrains\PyCharm Community Edition 2025.1.1/lib/pty4j -Dio.netty.allocator.type=pooled -Dintellij.platform.runtime.repository.path=C:\Program Files\JetBrains\PyCharm Community Edition 2025.1.1/modules/module-descriptors.jar -Didea.platform.prefix=PyCharmCore -Dwsl.use.remote.agent.for.nio.filesystem=true -Djava.nio.file.spi.DefaultFileSystemProvider=com.intellij.platform.core.nio.fs.MultiRoutingFileSystemProvider -Dsplash=true -Daether.connector.resumeDownloads=false -Dcompose.swing.render.on.graphics=true --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens=java.base/jdk.internal.vm=ALL-UNNAMED --add-opens=java.base/sun.net.dns=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.fs=ALL-UNNAMED --add-opens=java.base/sun.security.ssl=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED --add-opens=java.desktop/com.sun.java.swing=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.desktop/java.awt.dnd.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/java.awt.image=ALL-UNNAMED --add-opens=java.desktop/java.awt.peer=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED --add-opens=java.desktop/javax.swing.text=ALL-UNNAMED --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED --add-opens=java.desktop/sun.awt=ALL-UNNAMED --add-opens=java.desktop/sun.awt.datatransfer=ALL-UNNAMED --add-opens=java.desktop/sun.awt.image=ALL-UNNAMED --add-opens=java.desktop/sun.awt.windows=ALL-UNNAMED --add-opens=java.desktop/sun.font=ALL-UNNAMED --add-opens=java.desktop/sun.java2d=ALL-UNNAMED --add-opens=java.desktop/sun.swing=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED --add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-opens=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED --add-opens=jdk.jdi/com.sun.tools.jdi=ALL-UNNAMED -Dide.native.launcher=true -Djcef.sandbox.ptr=000001C3FF477220 -Djcef.sandbox.cefVersion=122.1.9+gd14e051+chromium-122.0.6261.94 com.intellij.idea.Main Host: Intel(R) Core(TM) i9-14900K, 32 cores, 95G, Windows 11 , 64 bit Build 26100 (10.0.26100.3912) Time: Wed May 14 10:42:32 2025 Windows 11 , 64 bit Build 26100 (10.0.26100.3912) elapsed time: 10.140251 seconds (0d 0h 0m 10s)
05-15
python运行时崩溃 # # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (malloc) failed to allocate 806800 bytes. Error detail: Chunk::new # Possible reasons: # The system is out of physical RAM or swap space # This process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap # Possible solutions: # Reduce memory load on the system # Increase physical memory or swap space # Check if swap backing store is full # Decrease Java heap size (-Xmx/-Xms) # Decrease number of Java threads # Decrease Java thread stack sizes (-Xss) # Set larger code cache with -XX:ReservedCodeCacheSize= # JVM is running with Unscaled Compressed Oops mode in which the Java heap is # placed in the first 4GB address space. The Java Heap base address is the # maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress # to set the Java Heap base and to place the Java Heap above 4GB virtual address. # This output file may be truncated or incomplete. # # Out of Memory Error (arena.cpp:168), pid=23832, tid=23872 # # JRE version: OpenJDK Runtime Environment JBR-21.0.6+9-631.42-jcef (21.0.6+9) (build 21.0.6+9-b631.42) # Java VM: OpenJDK 64-Bit Server VM JBR-21.0.6+9-631.42-jcef (21.0.6+9-b631.42, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) # No core dump will be written. Minidumps are not enabled by default on client versions of Windows # --------------- S U M M A R Y ------------ Command Line: abort vfprintf -XX:ErrorFile=C:\Users\YangGuang\java_error_in_pycharm_%p.log -XX:HeapDumpPath=C:\Users\YangGuang\java_error_in_pycharm.hprof -Xms256m -Xmx1500m -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:CICompilerCount=2 -XX:+IgnoreUnrecognizedVMOptions -ea -Dsun.io.useCanonCaches=false -Dsun.java2d.metal=true -Djbr.catch.SIGABRT=true -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Djdk.module.illegalAccess.silent=true -Djdk.nio.maxCachedBufferSize=2097152 -Djava.util.zip.use.nio.for.zip.file.access=true -Dkotlinx.coroutines.debug=off -XX:+UnlockDiagnosticVMOptions -XX:TieredOldPercentage=100000 -Dllm.show.ai.promotion.window.on.start=false -Dwsl.use.remote.agent.for.nio.filesystem=true -Djava.nio.file.spi.DefaultFileSystemProvider=com.intellij.platform.core.nio.fs.MultiRoutingFileSystemProvider -Djava.security.manager=com.intellij.platform.core.nio.fs.CoreBootstrapSecurityManager -Xmx2048m -Djb.vmOptionsFile=C:\Users\YangGuang\AppData\Roaming\JetBrains\PyCharmCE2024.3\pycharm64.exe.vmoptions -Djava.system.class.loader=com.intellij.util.lang.PathClassLoader -Didea.vendor.name=JetBrains -Didea.paths.selector=PyCharmCE2024.3 -Djna.boot.library.path=D:\PyCharm\PyCharm Community Edition 2024.3.6/lib/jna/amd64 -Dpty4j.preferred.native.folder=D:\PyCharm\PyCharm Community Edition 2024.3.6/lib/pty4j -Djna.nosys=true -Djna.noclasspath=true -Dintellij.platform.runtime.repository.path=D:\PyCharm\PyCharm Community Edition 2024.3.6/modules/module-descriptors.jar -Didea.platform.prefix=PyCharmCore -Dsplash=true -Daether.connector.resumeDownloads=false -Dcompose.swing.render.on.graphics=true --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens=java.base/jdk.internal.vm=ALL-UNNAMED --add-opens=java.base/sun.net.dns=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.fs=ALL-UNNAMED --add-opens=java.base/sun.security.ssl=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED --add-opens=java.desktop/com.sun.java.swing=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.desktop/java.awt.dnd.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/java.awt.image=ALL-UNNAMED --add-opens=java.desktop/java.awt.peer=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED --add-opens=java.desktop/javax.swing.text=ALL-UNNAMED --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED --add-opens=java.desktop/sun.awt=ALL-UNNAMED --add-opens=java.desktop/sun.awt.datatransfer=ALL-UNNAMED --add-opens=java.desktop/sun.awt.image=ALL-UNNAMED --add-opens=java.desktop/sun.awt.windows=ALL-UNNAMED --add-opens=java.desktop/sun.font=ALL-UNNAMED --add-opens=java.desktop/sun.java2d=ALL-UNNAMED --add-opens=java.desktop/sun.swing=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED --add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-opens=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED --add-opens=jdk.jdi/com.sun.tools.jdi=ALL-UNNAMED -Dide.native.launcher=true -Djcef.sandbox.ptr=00000159120744C0 -Djcef.sandbox.cefVersion=122.1.9+gd14e051+chromium-122.0.6261.94 com.intellij.idea.Main D:\Yolov8 Host: Intel(R) Core(TM) i9-14900HX, 32 cores, 15G, Windows 11 , 64 bit Build 26100 (10.0.26100.4768) Time: Tue Sep 2 21:53:24 2025 Windows 11 , 64 bit Build 26100 (10.0.26100.4768) elapsed time: 106.417212 seconds (0d 0h 1m 46s) --------------- T H R E A D --------------- Current thread (0x000001593eb19820): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=23872, stack(0x0000002aecf00000,0x0000002aed000000) (1024K)] Current CompileTask: C2:106417 47858 4 com.jetbrains.python.psi.resolve.PyResolveImportUtil::resolveModuleAt (311 bytes) Stack: [0x0000002aecf00000,0x0000002aed000000] Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [jvm.dll+0x6e5d39] V [jvm.dll+0x8c4133] V [jvm.dll+0x8c668e] V [jvm.dll+0x8c6d73] V [jvm.dll+0x288f76] V [jvm.dll+0xc66dd] V [jvm.dll+0xc6c13] V [jvm.dll+0x3c46db] V [jvm.dll+0x3902c7] V [jvm.dll+0x38f73a] V [jvm.dll+0x2507c2] V [jvm.dll+0x24fd91] V [jvm.dll+0x1cd6c4] V [jvm.dll+0x25f60c] V [jvm.dll+0x25db56] V [jvm.dll+0x3ff756] V [jvm.dll+0x86bd48] V [jvm.dll+0x6e453d] C [ucrtbase.dll+0x37b0] C [KERNEL32.DLL+0x2e8d7] C [ntdll.dll+0x3c34c] com.intellij.diagnostic.JBRCrash
09-03
# # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffcfcf20c0c, pid=12052, tid=11552 # # JRE version: OpenJDK Runtime Environment JBR-21.0.7+9-895.130-jcef (21.0.7+9) (build 21.0.7+9-b895.130) # Java VM: OpenJDK 64-Bit Server VM JBR-21.0.7+9-895.130-jcef (21.0.7+9-b895.130, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) # Problematic frame: # V [jvm.dll+0x490c0c] # # No core dump will be written. Minidumps are not enabled by default on client versions of Windows # # If you would like to submit a bug report, please visit: # https://youtrack.jetbrains.com/issues/JBR # --------------- S U M M A R Y ------------ Command Line: abort vfprintf -XX:ErrorFile=C:\Users\huafeng.ling\java_error_in_pycharm_%p.log -XX:HeapDumpPath=C:\Users\huafeng.ling\java_error_in_pycharm.hprof -Xms256m -Xmx1500m -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:CICompilerCount=2 -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:TieredOldPercentage=100000 -ea -Dsun.io.useCanonCaches=false -Dsun.java2d.metal=true -Djbr.catch.SIGABRT=true -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Djdk.module.illegalAccess.silent=true -Djdk.nio.maxCachedBufferSize=2097152 -Djava.util.zip.use.nio.for.zip.file.access=true -Dkotlinx.coroutines.debug=off -Dllm.show.ai.promotion.window.on.start=false -Xmx4096m -Djb.vmOptionsFile=C:\Users\huafeng.ling\AppData\Roaming\JetBrains\PyCharmCE2025.1\pycharm64.exe.vmoptions -Xbootclasspath/a:D:\PyCharm Community Edition 2024.3.5/lib/nio-fs.jar -Djava.system.class.loader=com.intellij.util.lang.PathClassLoader -Didea.vendor.name=JetBrains -Didea.paths.selector=PyCharmCE2025.1 -Djna.boot.library.path=D:\PyCharm Community Edition 2024.3.5/lib/jna/amd64 -Djna.nosys=true -Djna.noclasspath=true -Dpty4j.preferred.native.folder=D:\PyCharm Community Edition 2024.3.5/lib/pty4j -Dio.netty.allocator.type=pooled -Dintellij.platform.runtime.repository.path=D:\PyCharm Community Edition 2024.3.5/modules/module-descriptors.jar -Didea.platform.prefix=PyCharmCore -Dwsl.use.remote.agent.for.nio.filesystem=true -Djava.nio.file.spi.DefaultFileSystemProvider=com.intellij.platform.core.nio.fs.MultiRoutingFileSystemProvider -Dsplash=true -Daether.connector.resumeDownloads=false -Dcompose.swing.render.on.graphics=true --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens=java.base/jdk.internal.vm=ALL-UNNAMED --add-opens=java.base/sun.net.dns=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.fs=ALL-UNNAMED --add-opens=java.base/sun.security.ssl=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED --add-opens=java.desktop/com.sun.java.swing=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.desktop/java.awt.dnd.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/java.awt.image=ALL-UNNAMED --add-opens=java.desktop/java.awt.peer=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED --add-opens=java.desktop/javax.swing.text=ALL-UNNAMED --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED --add-opens=java.desktop/javax.swing.text.html.parser=ALL-UNNAMED --add-opens=java.desktop/sun.awt=ALL-UNNAMED --add-opens=java.desktop/sun.awt.datatransfer=ALL-UNNAMED --add-opens=java.desktop/sun.awt.image=ALL-UNNAMED --add-opens=java.desktop/sun.awt.windows=ALL-UNNAMED --add-opens=java.desktop/sun.font=ALL-UNNAMED --add-opens=java.desktop/sun.java2d=ALL-UNNAMED --add-opens=java.desktop/sun.swing=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED --add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-opens=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED --add-opens=jdk.jdi/com.sun.tools.jdi=ALL-UNNAMED -Dide.native.launcher=true -Djcef.sandbox.ptr=000001B7DBE819D0 -Djcef.sandbox.cefVersion=122.1.9+gd14e051+chromium-122.0.6261.94 com.intellij.idea.Main Host: AMD Ryzen 7 2700 Eight-Core Processor , 16 cores, 15G, Windows 10 , 64 bit Build 19041 (10.0.19041.5915) Time: Wed Jul 9 11:31:14 2025 Windows 10 , 64 bit Build 19041 (10.0.19041.5915) elapsed time: 1723.518837 seconds (0d 0h 28m 43s) --------------- T H R E A D --------------- Current thread (0x000001b8317efcd0): JavaThread "AWT-EventQueue-0" [_thread_in_vm, id=11552, stack(0x0000006974d00000,0x0000006974e00000) (1024K)] Stack: [0x0000006974d00000,0x0000006974e00000], sp=0x0000006974dfc050, free space=1008k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [jvm.dll+0x490c0c] C 0x000001b790309529
07-10
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值