Java 类问答:版本检测、虚拟机兼容与变量配置
围绕 Java 的问题自成一类,本篇收拢官方 FAQ 里的环境疑难。基础概念先读Java 常识。
问:明明装了新版 Java,程序还是说版本太老
官方 FAQ 的经典条目。常见原因三则:
- 装的是 SDK/JDK(开发套件)而非 JRE(运行环境)——程序要的是后者。
- 新 Java 没进系统 PATH:命令行跑 java -version 验证,看到的才是系统真正会用的那个。
- 装过 Oracle 数据库的机器:官方特别警告,Oracle 安装时塞入的旧版 Java(1.3.1)会改写启动路径,导致程序永远报老版本。要么改数据库的配置文件指向新 Java,要么写个批处理直接用完整路径启动程序。
问:哪些 Java 虚拟机能跑
官方 FAQ 的口径:Sun 系虚拟机 1.4.0 及以上;社区报告过 Blackdown 的 JDK 1.4.2 与 Linux 上 Sun 64 位 JDK 1.5.0 运行正常。历史上 0.8.0 与 Java 6 有已知冲突(加密节点保存会清空导图、偏好设置打不开),官方建议当年用 Java 5——用最终稳定版的用户遇到偏好设置打不开,也可以检查是否与双显示器扩展桌面有关(官方 FAQ 记录过对话框被存到副屏位置的案例)。
问:JAVA_HOME 和 PATH 到底怎么配
官方 FAQ 给的格式:
- JAVA_HOME 指向 JRE 主目录(形如安装盘符下 Java 目录里的 jre6)。
- PATH 里加入 JRE 的 bin 子目录。
改完开新命令行窗口用 java -version 验证。详细排障流程见启动没反应。
问:跑 bat 报 NoClassDefFoundError 是什么
报错栈指向日志类缺失 = 系统找到的 Java 是 1.3 或更老。解法即上两问:换对 JRE、配对路径。
问:去哪下 Java
官方 FAQ 的答案很直接:到 Java 官网下载页,按提示下载安装即可。装完不需要重启电脑(以实际安装器提示为准)。
问:免 Java 的办法有吗
有:选官方曾提供的内嵌 Java 的 Windows 整合安装器,或 Mac 整合 dmg——这些包自带运行环境,见Windows 安装与macOS 安装。