java -version
和javac -version
(JDK包含javac),若未安装,使用sudo apt update && sudo apt install openjdk-11-jdk
(或指定版本,如openjdk-17-jdk
)安装。JAVA_HOME
指向正确JDK路径(如/usr/lib/jvm/java-11-openjdk-amd64
),PATH
包含$JAVA_HOME/bin
。编辑/etc/environment
(全局)或~/.bashrc
(用户级),添加后执行source
命令生效。sudo update-alternatives --display java
列出所有Java版本。sudo update-alternatives --config java
,选择需要的版本;若编译/运行时版本不匹配(如UnsupportedClassVersionError
),需确保编译版本≤运行版本。ls -l
查看Java程序或JAR包权限,若无法读写,用chmod +x app.jar
添加执行权限,或chown youruser:youruser app.jar
修改所有者。sudo aa-complain /etc/apparmor.d/usr.bin.java
)或完全关闭(sudo systemctl stop apparmor
)。libaio
、libx11
),使用sudo apt install
安装;若为Maven/Gradle项目,运行mvn clean install
或gradle build
下载依赖。jar tf app.jar
验证JAR包是否包含主类(如META-INF/MANIFEST.MF
中Main-Class
配置正确);若包损坏,重新下载或传输。journalctl -xe
(实时日志)或tail -f /var/log/syslog
(历史日志)获取错误详情;若为Java应用,检查其自身日志(如Logback/Log4j输出的logs/
目录文件)。hs_err_pidxxx.log
(位于当前目录),其中包含崩溃原因(如内存溢出、JNI错误)。-Xmx512m
设置最大堆,-Xms256m
设置初始堆),或优化程序减少内存消耗。jstack <pid>
生成线程转储,分析泄漏线程(如未关闭的线程池),确保线程完成任务后终止。/etc/security/limits.conf
,增加youruser hard nofile 65535
(提高文件描述符限制)。sudo apt remove --purge openjdk-*
彻底删除旧版Java,再运行sudo apt autoremove
清理依赖。sudo apt install default-jdk
(默认版本)或指定版本(如openjdk-11-jdk
),确保安装完整。sudo apt update
),修复依赖(sudo apt -f install
),清理缓存(sudo apt clean
),或更换APT源(编辑/etc/apt/sources.list
为官方源)。/etc/timezone
(如Europe/Paris
),然后运行sudo dpkg-reconfigure tzdata
同步系统时区。"my app.jar"
),确保命令格式为java -Xmx512m -Xms256m -jar app.jar
。