JVM.log

jps

-q 忽略输出的类名、Jar名以及传递给main方法的参数,只输出pid。

-m 输出传递给main方法的参数,如果是内嵌的JVM则输出为null。

-l 输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。

-v 输出传给JVM的参数。

-V 输出通过标记的文件传递给JVM的参数(.hotspotrc文件,或者是通过参数-XX:Flags=<filename>指定的文件)

 

jstat

jstat -gcutil -t -h3 7280 1000 300

    -gcutil 统计heap的gc情况

    -t      在第一列输出时间戳。该时间戳从jvm启动开始

    -h3     每隔N行输出一次列表头

    7280    进程号

    1000    输出间隔时间,单位毫秒

    300     输出次数

 

 

jinfo

观察运行中的java程序的运行环境参数:参数包括Java System属性和JVM命令行参数

jinfo 14352

jinfo -sysprops 14352

jinfo -flags 14352

jinfo -flag MaxPermSize 14352

 

jmap

jmap -histo pid 展示class的内存情况

jmap -heap  pid 展示Java堆详细信息

 

 

jstack [option] pid 

-F: 强制产生一个线程dump

-m: 打印java和native frames

-l: 打印关于锁的附加信息

<think>好的,用户现在遇到了Nexus启动失败的问题,具体错误包括OpenJDK的警告、jvm.log文件缺失以及NumberFormatException异常。我需要结合之前的对话和提供的引用来给出解决方案。 首先,用户之前的问题是关于Nexus启动失败的错误,现在他们进一步询问针对Nexus 3.61.0-02在Windows PowerShell环境下出现的同样问题。之前的回答已经覆盖了Java版本、日志路径和NumberFormatException的处理,但可能需要更具体的步骤,特别是针对Windows系统和这个特定版本。 查看用户提供的引用,引用1和2提到了下载Nexus 3.x版本和Windows安装包,引用3是关于Linux下的解压步骤,引用4是Nexus的功能介绍。不过用户现在的问题是关于Windows环境下的启动问题,所以引用3的Linux步骤可能不适用,但需要确认路径是否正确。 首先,用户提到OpenJDK的问题。之前的回答建议检查JDK版本,用户现在可能使用的是OpenJDK,而Nexus可能对特定版本有兼容性问题。需要确认Nexus 3.61.0-02是否支持他们当前使用的OpenJDK版本。根据经验,Nexus 3.x通常需要Java 8或11,但可能某些小版本有特定要求。可能需要建议用户切换到Oracle JDK或者官方推荐的版本,并设置JAVA_HOME环境变量,特别是Windows下路径是否正确,是否有空格或特殊字符导致问题。 其次,关于jvm.log文件缺失的错误。之前的回答提到了日志路径的权限问题,但Windows下的路径结构不同。用户错误信息中的路径是../sonatype-work/nexus3/log/jvm.log,这可能是因为相对路径的问题。需要检查Nexus的安装目录,确认sonatype-work目录是否存在,或者是否配置了正确的绝对路径。用户可能在PowerShell中启动时,当前工作目录不正确,导致相对路径解析错误。建议用户修改nexus.vmoptions文件中的日志路径为绝对路径,确保目录存在且有写入权限。 第三,NumberFormatException异常。之前的回答提到这可能是因为配置文件中的某个参数无法解析为整数,比如端口号。用户现在使用的是Nexus 3.61.0-02,可能需要检查etc目录下的配置文件,如nexus-default.properties中的端口设置,或者karaf相关的配置。特别是检查是否有环境变量或系统属性被错误地设置为非数字值,比如在Windows中使用set命令查看相关变量。 另外,用户引用的内容中提到了安装包和解压步骤,可能需要确认用户是否正确解压了Nexus,并且没有损坏的安装文件。特别是如果用户从引用2中的gitcode下载,可能存在文件不完整的情况,建议重新下载或校验文件哈希。 最后,结合用户当前的问题,可能需要分步骤指导用户检查JDK版本、修改日志路径、检查配置文件中的端口设置,并确保所有必要的目录权限正确。同时,考虑到用户使用Windows PowerShell,需要注意路径中的反斜杠和转义问题,建议使用双引号包裹路径或使用正斜杠。 总结解决方案步骤:1. 确认JDK版本和设置;2. 处理日志路径问题;3. 检查配置文件中的数值参数;4. 确保安装目录正确和解压无误。同时,针对Windows环境给出具体的命令和路径示例,帮助用户一步步排查。</think>### Nexus 3.61.0-02 启动失败解决方案 针对 **OpenJDK 日志路径问题** 和 **`NumberFormatException` 异常**,以下是具体排查与修复步骤: --- #### 一、OpenJDK 兼容性与日志路径修复 1. **确认 JDK 版本与配置** Nexus 3.61.0-02 官方推荐使用 **Oracle JDK 8** 或 **OpenJDK 8/11**,需检查当前 JDK 版本是否符合要求: ```powershell java -version ``` 若版本不匹配,需下载并配置正确的 JDK[^1]。 **注意**:若使用 OpenJDK,确保其经过 Nexus 官方认证[^4]。 2. **修复 `jvm.log` 路径问题** 错误提示 `../sonatype-work/nexus3/log/jvm.log` 表明日志路径配置错误。 - **步骤**: - 定位 Nexus 安装目录下的 `nexus-3.61.0-02\etc\nexus-default.properties`,检查 `karaf.log` 相关配置。 - 修改日志路径为绝对路径(避免相对路径歧义),例如: ```properties # nexus-default.properties karaf.log=$${karaf.data}/log/nexus.log ``` - 手动创建日志目录(如 `C:\nexus\sonatype-work\nexus3\log`),并赋予完全控制权限[^3]。 3. **调整 JVM 参数** 编辑 `nexus-3.61.0-02\bin\nexus.vmoptions`,强制指定日志路径: ```properties -XX:LogFile=C:\nexus\sonatype-work\nexus3\log\jvm.log ``` --- #### 二、解决 `NumberFormatException` 异常 此异常通常由 **配置文件中的非数值参数** 或 **环境变量错误** 导致。 1. **检查端口配置** - 打开 `nexus-3.61.0-02\etc\nexus-default.properties`,确认以下参数为整数: ```properties application-port=8081 application-host=0.0.0.0 ``` - 若端口被占用或配置为非法值(如空值、字符串),需修正并重启。 2. **排查 Karaf 启动参数** 异常堆栈指向 `org.apache.karaf.main.ConfigProperties`,需检查: - 文件 `nexus-3.61.0-02\etc\karaf\system.properties` 是否存在非法数值(如 `org.osgi.framework.startlevel.beginning`)。 - 环境变量中是否有 `PORT` 或类似变量被错误赋值为非数字值。 3. **清理临时文件** 删除 `sonatype-work\nexus3\tmp` 和 `sonatype-work\nexus3\cache` 目录,避免残留文件干扰启动[^3]。 --- #### 三、完整操作流程示例 1. **配置 JDK** ```powershell # 设置 JAVA_HOME(以 OpenJDK 11 为例) $env:JAVA_HOME = "C:\Program Files\Java\jdk-11.0.12" $env:Path += ";$env:JAVA_HOME\bin" ``` 2. **修正日志路径** ```powershell # 创建日志目录并赋权 mkdir C:\nexus\sonatype-work\nexus3\log -Force icacls C:\nexus\sonatype-work\nexus3\log /grant "Everyone:(OI)(CI)F" ``` 3. **启动 Nexus** ```powershell cd C:\nexus\nexus-3.61.0-02\bin .\nexus.exe /run ``` --- #### 四、附加建议 - **安装包完整性验证** 若问题持续,重新从[官方渠道](https://gitcode.com/open-source-toolkit/nexus-releases)下载安装包[^2],避免文件损坏。 - **兼容性模式运行** 右键点击 `nexus.exe` → 属性 → 兼容性 → 勾选“以管理员身份运行”。 --- ### 相关问题 1. 如何在 Windows 中永久设置 `JAVA_HOME` 环境变量? 2. Nexus 启动时如何查看实时日志以定位其他错误? 3. 如何通过命令行强制终止占用 Nexus 端口的进程? 通过以上步骤,应能解决因日志路径和参数解析导致的启动失败问题。若仍报错,建议提供完整的启动日志以进一步分析。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值