가끔 Java 프로세스가 간단하게 어떤 args로 기동이 됐는지 어떤 설정값을 가지고 프로세스가 시작이 됐는지 필요할 때가 꼭 존재한다. 보통 VisualVM을 통한 속성확인을 하곤 하는데 간단한 확인 방법이 존재합니다. 꼭 한번 실행해 볼 가치가 있으니 기억해 두면 좋을 듯 합니다.
jps -l은 실행 중인 모든 자바 프로세스 목록을 출력합니다.
jps -l
19648 jdk.jcmd/sun.tools.jps.Jps
21648 C:\DevelopmentEnvironment\eclipse-jee\plugins\org.springframework.tooling.boot.ls_1.60.0.202502031607\servers\spring-boot-language-server\spring-boot-language-server-1.60.0-SNAPSHOT-exec.jar
24492 Eclipse
jinfo -flags는 -Xms, -Xmx 등 JVM에 전달된 플래그(인자)를 보여줍니다.
jinfo -flags 24492
VM Flags:
-XX:CICompilerCount=12
-XX:ConcGCThreads=3
-XX:G1ConcRefinementThreads=13
-XX:G1EagerReclaimRemSetThreshold=12
-XX:G1HeapRegionSize=1048576
-XX:G1RemSetArrayOfCardsEntries=12
-XX:G1RemSetHowlMaxNumBuckets=8
-XX:G1RemSetHowlNumBuckets=4
-XX:GCDrainStackTargetSize=64
-XX:InitialHeapSize=268435456
-XX:MarkStackSize=4194304
-XX:MaxHeapSize=2147483648
-XX:MaxNewSize=1287651328
-XX:MinHeapDeltaBytes=1048576
-XX:MinHeapSize=268435456
-XX:NonNMethodCodeHeapSize=7602480
-XX:NonProfiledCodeHeapSize=122027880
-XX:ProfiledCodeHeapSize=122027880
-XX:ReservedCodeCacheSize=251658240
-XX:+SegmentedCodeCache
-XX:SoftMaxHeapSize=2147483648
-XX:+UseCompressedOops
-XX:+UseFastUnorderedTimeStamps
-XX:+UseG1GC
-XX:-UseLargePagesIndividualAllocation
-XX:+UseStringDeduplication
위 명령어 같은 경우 자바 프로세스에 자원이 어느정도 할당이 되어있는지 확인하기 가장 쉽고 간편한 방법이라고 할 수 있습니다.
jinfo -sysprops는 System.getProperties()와 동일한 시스템 속성을 보여줍니다.
jinfo -sysprops 12345
Java System Properties:
#Tue Aug 12 23:09:44 KST 2025
applicationXMI=org.eclipse.ui.workbench/LegacyIDE.e4xmi
ds.delayed.keepInstances=true
ds.delayed.keepInstances.default=true
eclipse.application=org.eclipse.ui.ide.workbench
eclipse.buildId=4.33.0.20240905-0613
eclipse.commands=-os\nwin32\n-ws\nwin32\n-arch\nx86_64\n-showsplash\nC\:\\DevelopmentEnvironment\\eclipse-jee\\\\plugins\\org.eclipse.epp.package.common_4.33.0.20240905-0613\\splash.bmp\n-launcher\nC\:\\DevelopmentEnvironment\\eclipse-jee\\eclipse.exe\n-name\nEclipse\n--launcher.library\nC\:\\DevelopmentEnvironment\\eclipse-jee\\\\plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.1100.v20240722-2106\\eclipse_11904.dll\n-startup\nC\:\\DevelopmentEnvironment\\eclipse-jee\\\\plugins/org.eclipse.equinox.launcher_1.6.900.v20240613-2009.jar\n--launcher.appendVmargs\n-product\norg.eclipse.epp.package.jee.product\n-vm\nC\:\\DevelopmentEnvironment\\eclipse-jee\\\\plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.6.v20250130-0529/jre/bin\\server\\jvm.dll\n
eclipse.e4.inject.javax.warning=false
eclipse.home.location=file\:/C\:/DevelopmentEnvironment/eclipse-jee/
eclipse.launcher=C\:\\DevelopmentEnvironment\\eclipse-jee\\eclipse.exe
eclipse.launcher.name=Eclipse
eclipse.p2.data.area=@config.dir/../p2/
eclipse.p2.profile=epp.package.jee
eclipse.product=org.eclipse.epp.package.jee.product
eclipse.startTime=1755007155963
eclipse.stateSaveDelayInterval=30000
eclipse.vm=C\:\\DevelopmentEnvironment\\eclipse-jee\\\\plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.6.v20250130-0529/jre/bin\\server\\jvm.dll
eclipse.vmargs=-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors\=org.eclipse.ecf.provider.filetransfer.httpclientjava\n-Dosgi.requiredJavaVersion\=21\n-Dosgi.instance.area.default\=@user.home/eclipse-workspace\n-Dosgi.dataAreaRequiresExplicitInit\=true\n-Dorg.eclipse.swt.graphics.Resource.reportNonDisposed\=true\n-Declipse.e4.inject.javax.warning\=false\n-Dsun.java.command\=Eclipse\n-Xms256m\n-Xmx2048m\n-XX\:+UseG1GC\n-XX\:+UseStringDeduplication\n--add-modules\=ALL-SYSTEM\n-Djava.security.manager\=allow\n-javaagent\:C\:\\DevelopmentEnvironment\\eclipse-jee\\lombok.jar\n-Djava.class.path\=C\:\\DevelopmentEnvironment\\eclipse-jee\\\\plugins/org.eclipse.equinox.launcher_1.6.900.v20240613-2009.jar\n
equinox.init.uuid=true
file.encoding=UTF-8
file.separator=\\
gosh.args=--nointeractive
guice.disable.misplaced.annotation.check=true
java.class.path=C\:\\DevelopmentEnvironment\\eclipse-jee\\\\plugins/org.eclipse.equinox.launcher_1.6.900.v20240613-2009.jar
java.class.version=65.0
java.home=C\:\\DevelopmentEnvironment\\eclipse-jee\\plugins\\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.6.v20250130-0529\\jre
java.io.tmpdir=C\:\\Users\\who49\\AppData\\Local\\Temp\\
java.library.path=C\:\\DevelopmentEnvironment\\eclipse-jee;C\:\\WINDOWS\\Sun\\Java\\bin;C\:\\WINDOWS\\system32;C\:\\WINDOWS;C\:\\Python27\\;C\:\\Python27\\Scripts;C\:\\Windows\\system32;C\:\\Windows;C\:\\Windows\\System32\\Wbem;C\:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C\:\\Windows\\System32\\OpenSSH\\;C\:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C\:\\Program Files\\Docker\\Docker\\resources\\bin;C\:\\WINDOWS\\system32;C\:\\WINDOWS;C\:\\WINDOWS\\System32\\Wbem;C\:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C\:\\WINDOWS\\System32\\OpenSSH\\;C\:\\project\\program\\Java\\jdk-17.0.2\\bin;C\:\\Program Files\\NVIDIA Corporation\\NVIDIA NvDLISR;C\:\\Program Files\\Git\\cmd;c\:\\project\\program\\Java\\apache-maven-3.8.6\\bin;C\:\\project\\cmake-3.29.2-windows-x86_64\\bin;C\:\\ProgramData\\chocolatey\\lib\\make\\tools\\install\\bin;C\:\\ProgramData\\chocolatey\\bin;;C\:\\WINDOWS\\system32;C\:\\WINDOWS;C\:\\WINDOWS\\System32\\Wbem;C\:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C\:\\WINDOWS\\System32\\OpenSSH\\;C\:\\Program Files\\Tailscale\\;C\:\\nodejs\\;C\:\\Users\\who49\\AppData\\Local\\Programs\\Python\\Python313\\Scripts\\;C\:\\Users\\who49\\AppData\\Local\\Programs\\Python\\Python313\\;C\:\\Users\\who49\\AppData\\Local\\Microsoft\\WindowsApps;C\:\\Program Files\\Bandizip\\;;C\:\\project\\program\\VSCode\\bin;C\:\\Users\\who49\\AppData\\Roaming\\npm;.
java.runtime.name=OpenJDK Runtime Environment
java.runtime.version=21.0.6+7-LTS
java.security.manager=allow
java.specification.name=Java Platform API Specification
java.specification.vendor=Oracle Corporation
java.specification.version=21
java.vendor=Eclipse Adoptium
java.vendor.url=https\://adoptium.net/
java.vendor.url.bug=https\://github.com/adoptium/adoptium-support/issues
java.vendor.version=Temurin-21.0.6+7
java.version=21.0.6
java.version.date=2025-01-21
java.vm.compressedOopsMode=32-bit
java.vm.info=mixed mode, sharing
java.vm.name=OpenJDK 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Oracle Corporation
java.vm.specification.version=21
java.vm.vendor=Eclipse Adoptium
java.vm.version=21.0.6+7-LTS
jdk.debug=release
jna.loaded=true
jnidispatch.path=C\:\\Users\\who49\\AppData\\Local\\Temp\\jna-113105603\\jna17816437643912817866.dll
line.separator=\r\n
maven.defaultProjectBuilder.disableGlobalModelCache=true
native.encoding=MS949
org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
org.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclientjava
org.eclipse.equinox.launcher.splash.location=C\:\\DevelopmentEnvironment\\eclipse-jee\\\\plugins\\org.eclipse.epp.package.common_4.33.0.20240905-0613\\splash.bmp
org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.eclipse.equinox.simpleconfigurator/bundles.info
org.eclipse.m2e.log.dir=C\:\\DevelopmentEnvironment\\workspace\\.metadata\\.plugins\\org.eclipse.m2e.logback
org.eclipse.swt.graphics.Resource.reportNonDisposed=true
org.eclipse.swt.internal.deviceZoom=100
org.osgi.framework.executionenvironment=OSGi/Minimum-1.0, OSGi/Minimum-1.1, OSGi/Minimum-1.2, JavaSE/compact1-1.8, JavaSE/compact2-1.8, JavaSE/compact3-1.8, JRE-1.1, J2SE-1.2, J2SE-1.3, J2SE-1.4, J2SE-1.5, JavaSE-1.6, JavaSE-1.7, JavaSE-1.8, JavaSE-9, JavaSE-10, JavaSE-11, JavaSE-12, JavaSE-13, JavaSE-14, JavaSE-15, JavaSE-16, JavaSE-17, JavaSE-18, JavaSE-19, JavaSE-20, JavaSE-21
org.osgi.framework.language=ko
org.osgi.framework.os.name=win32
org.osgi.framework.os.version=10.0.0
org.osgi.framework.processor=x86-64
org.osgi.framework.storage=C\:\\DevelopmentEnvironment\\eclipse-jee\\configuration
org.osgi.framework.system.capabilities=osgi.ee; osgi.ee\="OSGi/Minimum"; version\:List<Version>\="1.0, 1.1, 1.2", osgi.ee; osgi.ee\="JRE"; version\:List<Version>\="1.0, 1.1", osgi.ee; osgi.ee\="JavaSE"; version\:List<Version>\="1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0",osgi.ee; osgi.ee\="JavaSE/compact1"; version\:List<Version>\="1.8, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0",osgi.ee; osgi.ee\="JavaSE/compact2"; version\:List<Version>\="1.8, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0",osgi.ee; osgi.ee\="JavaSE/compact3"; version\:List<Version>\="1.8, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0"
org.osgi.framework.system.packages=com.sun.java.accessibility.util, com.sun.jdi, com.sun.jdi.connect, com.sun.jdi.connect.spi, com.sun.jdi.event, com.sun.jdi.request, com.sun.management, com.sun.net.httpserver, com.sun.net.httpserver.spi, com.sun.nio.file, com.sun.nio.sctp, com.sun.security.auth, com.sun.security.auth.callback, com.sun.security.auth.login, com.sun.security.auth.module, com.sun.security.jgss, com.sun.source.doctree, com.sun.source.tree, com.sun.source.util, com.sun.tools.attach, com.sun.tools.attach.spi, com.sun.tools.javac, com.sun.tools.jconsole, java.applet, java.awt, java.awt.color, java.awt.datatransfer, java.awt.desktop, java.awt.dnd, java.awt.event, java.awt.font, java.awt.geom, java.awt.im, java.awt.im.spi, java.awt.image, java.awt.image.renderable, java.awt.print, java.beans, java.beans.beancontext, java.io, java.lang, java.lang.annotation, java.lang.constant, java.lang.foreign, java.lang.instrument, java.lang.invoke, java.lang.management, java.lang.module, java.lang.ref, java.lang.reflect, java.lang.runtime, java.math, java.net, java.net.http, java.net.spi, java.nio, java.nio.channels, java.nio.channels.spi, java.nio.charset, java.nio.charset.spi, java.nio.file, java.nio.file.attribute, java.nio.file.spi, java.rmi, java.rmi.dgc, java.rmi.registry, java.rmi.server, java.security, java.security.cert, java.security.interfaces, java.security.spec, java.sql, java.text, java.text.spi, java.time, java.time.chrono, java.time.format, java.time.temporal, java.time.zone, java.util, java.util.concurrent, java.util.concurrent.atomic, java.util.concurrent.locks, java.util.function, java.util.jar, java.util.logging, java.util.prefs, java.util.random, java.util.regex, java.util.spi, java.util.stream, java.util.zip, javax.accessibility, javax.annotation.processing, javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.imageio, javax.imageio.event, javax.imageio.metadata, javax.imageio.plugins.bmp, javax.imageio.plugins.jpeg, javax.imageio.plugins.tiff, javax.imageio.spi, javax.imageio.stream, javax.lang.model, javax.lang.model.element, javax.lang.model.type, javax.lang.model.util, javax.management, javax.management.loading, javax.management.modelmbean, javax.management.monitor, javax.management.openmbean, javax.management.relation, javax.management.remote, javax.management.remote.rmi, javax.management.timer, javax.naming, javax.naming.directory, javax.naming.event, javax.naming.ldap, javax.naming.ldap.spi, javax.naming.spi, javax.net, javax.net.ssl, javax.print, javax.print.attribute, javax.print.attribute.standard, javax.print.event, javax.rmi.ssl, javax.script, javax.security.auth, javax.security.auth.callback, javax.security.auth.kerberos, javax.security.auth.login, javax.security.auth.spi, javax.security.auth.x500, javax.security.cert, javax.security.sasl, javax.smartcardio, javax.sound.midi, javax.sound.midi.spi, javax.sound.sampled, javax.sound.sampled.spi, javax.sql, javax.sql.rowset, javax.sql.rowset.serial, javax.sql.rowset.spi, javax.swing, javax.swing.border, javax.swing.colorchooser, javax.swing.event, javax.swing.filechooser, javax.swing.plaf, javax.swing.plaf.basic, javax.swing.plaf.metal, javax.swing.plaf.multi, javax.swing.plaf.nimbus, javax.swing.plaf.synth, javax.swing.table, javax.swing.text, javax.swing.text.html, javax.swing.text.html.parser, javax.swing.text.rtf, javax.swing.tree, javax.swing.undo, javax.tools, javax.transaction.xa, javax.xml, javax.xml.catalog, javax.xml.crypto, javax.xml.crypto.dom, javax.xml.crypto.dsig, javax.xml.crypto.dsig.dom, javax.xml.crypto.dsig.keyinfo, javax.xml.crypto.dsig.spec, javax.xml.datatype, javax.xml.namespace, javax.xml.parsers, javax.xml.stream, javax.xml.stream.events, javax.xml.stream.util, javax.xml.transform, javax.xml.transform.dom, javax.xml.transform.sax, javax.xml.transform.stax, javax.xml.transform.stream, javax.xml.validation, javax.xml.xpath, jdk.dynalink, jdk.dynalink.beans, jdk.dynalink.linker, jdk.dynalink.linker.support, jdk.dynalink.support, jdk.javadoc.doclet, jdk.jfr, jdk.jfr.consumer, jdk.jshell, jdk.jshell.execution, jdk.jshell.spi, jdk.jshell.tool, jdk.management.jfr, jdk.net, jdk.nio, jdk.nio.mapmode, jdk.security.jarsigner, jdk.swing.interop, netscape.javascript, org.ietf.jgss, org.w3c.dom, org.w3c.dom.bootstrap, org.w3c.dom.css, org.w3c.dom.events, org.w3c.dom.html, org.w3c.dom.ls, org.w3c.dom.ranges, org.w3c.dom.stylesheets, org.w3c.dom.traversal, org.w3c.dom.views, org.w3c.dom.xpath, org.xml.sax, org.xml.sax.ext, org.xml.sax.helpers, sun.misc, sun.reflect
org.osgi.framework.uuid=800a00f4-fa1b-4114-a1a2-c4aebd196415
org.osgi.framework.vendor=Eclipse
org.osgi.framework.version=1.10.0
org.osgi.supports.framework.extension=true
org.osgi.supports.framework.fragment=true
org.osgi.supports.framework.requirebundle=true
os.arch=amd64
os.name=Windows 11
os.version=10.0
osgi.arch=x86_64
osgi.bundles=reference\:file\:org.eclipse.osgi.compatibility.state_1.2.1000.v20240213-1057.jar,reference\:file\:org.eclipse.equinox.simpleconfigurator_1.5.300.v20240424-1301.jar@1\:start
osgi.bundles.defaultStartLevel=4
osgi.compatibility.bootdelegation=true
osgi.compatibility.bootdelegation.default=true
osgi.configuration.area=file\:/C\:/DevelopmentEnvironment/eclipse-jee/configuration/
osgi.dataAreaRequiresExplicitInit=true
osgi.framework=file\:/c\:/DevelopmentEnvironment/eclipse-jee/plugins/org.eclipse.osgi_3.21.0.v20240717-2103.jar
osgi.framework.extensions=reference\:file\:org.eclipse.osgi.compatibility.state_1.2.1000.v20240213-1057.jar
osgi.framework.shape=jar
osgi.framework.useSystemProperties=true
osgi.frameworkClassPath=., file\:c\:/DevelopmentEnvironment/eclipse-jee/plugins/org.eclipse.osgi.compatibility.state_1.2.1000.v20240213-1057.jar
osgi.install.area=file\:/C\:/DevelopmentEnvironment/eclipse-jee/
osgi.instance.area=file\:/C\:/DevelopmentEnvironment/workspace/
osgi.instance.area.default=file\:/C\:/Users/who49/eclipse-workspace/
osgi.logfile=C\:\\DevelopmentEnvironment\\workspace\\.metadata\\.log
osgi.nl=ko_KR
osgi.os=win32
osgi.requiredJavaVersion=21
osgi.splashLocation=C\:\\DevelopmentEnvironment\\eclipse-jee\\\\plugins\\org.eclipse.epp.package.common_4.33.0.20240905-0613\\splash.bmp
osgi.splashPath=platform\:/base/plugins/org.eclipse.epp.package.common
osgi.syspath=c\:\\DevelopmentEnvironment\\eclipse-jee\\plugins
osgi.tracefile=C\:\\DevelopmentEnvironment\\workspace\\.metadata\\trace.log
osgi.ws=win32
path.separator=;
stderr.encoding=MS949
stdout.encoding=MS949
sun.arch.data.model=64
sun.boot.library.path=C\:\\DevelopmentEnvironment\\eclipse-jee\\plugins\\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.6.v20250130-0529\\jre\\bin
sun.cpu.endian=little
sun.cpu.isalist=amd64
sun.io.unicode.encoding=UnicodeLittle
sun.java.command=Eclipse
sun.jnu.encoding=MS949
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
sun.os.patch.level=
user.country=KR
user.dir=C\:\\DevelopmentEnvironment\\eclipse-jee
user.home=C\:\\Users\\who49
user.language=ko
user.name=who49
user.script=
user.timezone=Asia/Seoul
user.variant=
정보 내용을 다시 확인해 보면 이 방법들은 운영 중인 서버에서 자바 프로세스의 실행 상태를 모니터링하고 디버깅할 때 매우 유용합니다.
명시적 GC 방지 (0) | 2025.07.07 |
---|---|
MAVEN 설치 방법 (4) | 2024.12.18 |
JAVA 어플리케이션에서 사용하는 라이선스 확인 (3) | 2024.12.18 |
현장에서 최신 OpenJDK를 고려할 때 (3) | 2024.11.28 |
개발 프로세스에서 Ramp-down Ramp-up phase (3) | 2024.10.07 |