Java 环境配置——Java 语言的安装、配置、编译与运行

引言

Java 作为全球最广泛使用的编程语言之一,其强大的跨平台特性和丰富的生态系统,使其在企业级应用、移动开发、大数据处理等领域具有重要地位。正确配置 Java 开发环境是每一个 Java 开发者的必备技能。本文将详细介绍如何在不同操作系统上安装、配置 Java 环境,并展示如何编译和运行 Java 程序。

1. Java 环境的安装

1.1 安装 JDK

Java 开发工具包(JDK)是进行 Java 开发的基础。JDK 包含了编译器(javac)、运行时环境(JRE)、调试器(jdb)等工具。

1.1.1 在 Windows 上安装 JDK
  1. 下载 JDK:访问 Oracle 官方网站 或 OpenJDK 下载适用于 Windows 的 JDK 安装包。
  2. 运行安装程序:双击下载的安装包,按照提示进行安装,建议安装路径为 C:\Program Files\Java\jdk-<version>
  3. 配置环境变量
    • 右键点击“此电脑”,选择“属性” -> “高级系统设置” -> “环境变量”。
    • 在“系统变量”中找到 Path,点击“编辑”,添加 JDK 的 bin 目录路径,例如 C:\Program Files\Java\jdk-<version>\bin
    • 新建 JAVA_HOME 变量,值为 JDK 的安装路径,例如 C:\Program Files\Java\jdk-<version>
1.1.2 在 macOS 上安装 JDK
  1. 下载 JDK:同样访问 Oracle 官方网站 或 OpenJDK 下载适用于 macOS 的 JDK 安装包。
  2. 运行安装程序:双击下载的 .dmg 文件,按照提示安装 JDK。
  3. 配置环境变量
    • 打开终端,输入 nano ~/.bash_profilenano ~/.zshrc(根据使用的 Shell 类型)。
    • 添加以下行:
      export JAVA_HOME=$(/usr/libexec/java_home)
      export PATH=$JAVA_HOME/bin:$PATH
      
    • 保存并退出,然后执行 source ~/.bash_profilesource ~/.zshrc 使配置生效。
1.1.3 在 Linux 上安装 JDK
  1. 下载 JDK:访问 Oracle 官方网站 或 OpenJDK 下载适用于 Linux 的 JDK 安装包,或者使用包管理器安装。
  2. 使用包管理器安装
    • 对于基于 Debian 的系统(如 Ubuntu),执行:
      sudo apt update
      sudo apt install openjdk-<version>-jdk
      
    • 对于基于 Red Hat 的系统(如 CentOS),执行:
      sudo yum install java-<version>-openjdk-devel
      
  3. 配置环境变量
    • 打开终端,输入 nano ~/.bashrcnano ~/.zshrc
    • 添加以下行:
      export JAVA_HOME=/usr/lib/jvm/java-<version>-openjdk
      export PATH=$JAVA_HOME/bin:$PATH
      
    • 保存并退出,然后执行 source ~/.bashrcsource ~/.zshrc 使配置生效。

2. 验证 Java 安装

安装完成后,验证 Java 是否安装成功以及环境变量是否配置正确。

  1. 验证 JDK 安装
    • 打开命令行工具(Windows 上的命令提示符,macOS 和 Linux 上的终端)。
    • 输入 java -versionjavac -version,应显示安装的 Java 版本信息。
$ java -version
java version "17.0.1" 2021-10-19 LTS
Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)$ javac -version
javac 17.0.1

3. 编写、编译与运行 Java 程序

3.1 编写 Java 程序

使用任何文本编辑器(如 Notepad++、Sublime Text、VSCode)或集成开发环境(IDE,如 IntelliJ IDEA、Eclipse、NetBeans)编写 Java 代码。

示例代码 HelloWorld.java

public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}
}
3.2 编译 Java 程序

使用命令行工具进行编译:

  1. 打开命令行工具。
  2. 导航到 HelloWorld.java 文件所在目录。
  3. 执行以下命令进行编译:
javac HelloWorld.java

编译成功后,会生成一个 HelloWorld.class 文件,这是 Java 虚拟机(JVM)可以执行的字节码文件。

3.3 运行 Java 程序

使用命令行工具运行编译后的 Java 程序:

java HelloWorld

输出应为:

Hello, World!

4. 常见问题及解决方案

4.1 javajavac 命令未找到

如果在执行 java -versionjavac -version 时出现“命令未找到”的错误,可能是环境变量未正确配置。检查 PATHJAVA_HOME 环境变量是否正确设置,并确保重新启动命令行工具或执行 source 命令使配置生效。

4.2 编译错误

如果在编译过程中出现错误,检查代码是否存在语法错误,文件名是否与类名一致。例如,类名为 HelloWorld 的 Java 文件应命名为 HelloWorld.java

4.3 运行时错误

如果在运行过程中出现错误,检查是否正确编译了 Java 文件,是否在正确的目录下执行 java 命令,类名是否拼写正确。

结论

正确配置 Java 开发环境是进行 Java 开发的第一步。通过本文的详细介绍,读者应能够在不同操作系统上安装和配置 JDK,并熟练编写、编译和运行 Java 程序。无论是新手开发者还是资深工程师,掌握这些基本技能将为后续的 Java 开发奠定坚实基础。随着技术的发展,Java 生态系统也在不断演进,保持对新版本和新特性的关注,将有助于提升开发效率和代码质量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/47366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS7中的yum命令不可用,网络不可达

前言 我也搜了大量的文章&#xff0c;基本上都是 输入 vi /etc/sysconfig/network-scripts/ifcfg-ens33 (这个ens33 是上面图片对应的以太网卡的名称&#xff0c;有的可能是ifcfg-eth0) 将 ONBOOTno 改为 ONBOOTyes以及其他方法&#xff0c;但是都没用。 解决 具体原因我也…

Wpf和Winform使用devpress控件库导出Excel并调整报表样式

Wpf和Winform使用devpress控件库导出Excel并调整报表样式 背景 客户需求经常需要出各种报表&#xff0c;部分客户对报表的样式有要求。包括颜色、字体、分页等等。 代码 使用Datagridview导出excel调整样式 DevExpress.XtraGrid.Views.Grid.GridView gdv #region GridView…

2024“钉耙编程”杭电多校1006 序列立方(思维+前缀和优化dp)

来源 题目 Problem Description 给定长度为 N 的序列 a。 一个序列有很多个子序列&#xff0c;每个子序列在序列中出现了若干次。 小马想请你输出序列 a 每个非空子序列出现次数的立方值的和&#xff0c;答案对 998244353 取模。 你可以通过样例解释来辅助理解题意。 Input 第…

[言简意赅] Matlab生成FPGA端rom初始化文件.coe

&#x1f38e;Matlab生成FPGA端rom初始化文件.coe 本文主打言简意赅。 函数源码 function gencoeInitialROM(width, depth, signal, filepath)% gencoeInitialROM - 生成 Xilinx ROM 初始化格式的 COE 文件%% 输入参数:% width - ROM 数据位宽% depth - ROM 数据深度% s…

heic文件怎么转换成jpg?上百份文件转换3秒就能搞定(办公必备)

heic和jpg是两种不同的图片格式&#xff0c;平时整理图片素材时&#xff0c;如果需要将heic转为jpg格式&#xff0c;那么可以使用相关的heic图片转换工具。 ​ 为什么要将heic文件转换成jpg&#xff1f;虽然HEIC格式具有很多优点&#xff0c;但是目前并不是所有设备和应用程序…

好玩模拟游戏推荐:缺氧:眼冒金星 单机游戏分享

《缺氧》 是一款太空殖民模拟游戏。 在外太空岩深处&#xff0c;你手下的勤劳开拓者们需要熟练掌握科技&#xff0c;战胜新的陌生生命形式&#xff0c;以及利用难以置信的太空技术来生存。甚至&#xff0c;还有可能繁荣起来。 建立广阔的基地以及探索生存所需的资源&#xff1…

服务攻防_01数据库安全RedisCouchdbH2database

一、数据库-Redis-未授权RCE&CVE 1、未授权访问&#xff1a;CNVD-2015-07557 &#xff08;1&#xff09;漏洞描述 Redis默认情况下会绑定在6379端口 如果没有采取相关策略&#xff08;如添加防火墙规则阻止非信任来源IP访问&#xff09;&#xff0c;会将Redis暴露在公网…

设计模式(工厂模式,模板方法模式,单例模式)

单例模式&#xff1a; 确保一个类只有一个实例&#xff0c;并提供全局访问点。 单例模式举例&#xff1a; 配置信息类&#xff1a;用于存储应用程序的全局配置信息&#xff0c;例如数据库连接信息、日志配置等。 日志类&#xff1a;用于记录应用程序运行时的日志信息&#x…

HTML5实现好看的天气预报网站源码

文章目录 1.设计来源1.1 获取天气接口1.2 PC端页面设计1.3 手机端页面设计 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_4…

揭秘电子画册制作流程,打造独一无二的作品

在这个数字化的时代&#xff0c;电子画册已经成为了展示个人创意和品牌形象的重要工具。它不仅能够呈现出丰富多彩的内容&#xff0c;还能够实现互动性和传播性&#xff0c;吸引众多观众的目光。然而&#xff0c;许多人对于电子画册的制作流程仍然感到陌生。本文将揭秘电子画册…

企业VR展厅如何提升品牌形象,生动展示产品和企业文化?

一、提升产品展示效果 1、全方位展示产品细节 企业VR展厅可以通过3D建模和虚拟现实技术&#xff0c;将产品的每一个细节清晰地展示出来。客户可以全方位查看产品的外观、结构和功能。这种身临其境的体验远比传统的平面展示更加生动和详细。 细节展示&#xff1a;客户可以通过…

Ubuntu22 Qt6.6 ROS 环境搭建

Ubuntu22.04; Qt6.6; Qt Creator 13.01; ROS2 1. 安装 Qt ROS 插件 1.下载地址&#xff1a; https://github.com/ros-industrial/ros_qtc_plugin/releases 选择对应 Qt Creator 版本的安装包。 2. Qt Creator中&#xff0c;“Help - 关于插件”–>“install Plugin…

一个模板实现的工厂的编译问题的解决。牵扯到重载、特化等

简介 在一个项目里&#xff0c;调用了第三封的库&#xff0c;这个库里面有个类用的很多&#xff0c;而且其构造函数至少有6个&#xff0c;并且个人感觉还不够多。根据实际使用&#xff0c;还得增加一些。 需求 1、增加构造函数&#xff0c;比如除了下面的&#xff0c;还增加…

Gateway源码分析:路由Route、断言Predicate、Filter

文章目录 源码总流程图说明GateWayAutoConfigurationDispatcherHandlergetHandler()handleRequestWith()RouteToRequestUrlFilterReactiveLoadBalancerClientFilterNettyRoutingFilter 补充知识适配器模式 详细流程图 源码总流程图 在线总流程图 说明 Gateway的版本使用的是…

01常见控件

文章目录 控件各种响应事件获取控件类型CButton/CheckBox&#xff08;多选&#xff09;/RadioButton&#xff08;单选&#xff09;EditControl&#xff08;文本编辑框&#xff09;/ ListBox&#xff08;列表文本框&#xff09;/ComboBox&#xff08;可下拉列表&#xff09;Prog…

es master 节点数据丢失导致数据节点加入集群失败的灾难恢复

文章目录 [toc]前情提要解决方案解决流程实践过程停止 es 节点master 节点增加数据持久化新建 es-node-tools pod使用 elasticsearch-node 命令dangling 悬空索引 前情提要 部署的架构可以看我之前的博客&#xff1a;k8s 使用 helm 文件部署 8.12.2 es 分角色集群&#xff0c;当…

【软考】UML中的关联关系

目录 一、说明二、具体类型2.1 普通关联2.2 单向关联2.3 双向关联2.4 自关联2.4 聚合关系&#xff08;Aggregation&#xff09;2.5 组合关系&#xff08;Composition&#xff09; 三、关联关系中的多重性 一、说明 1.UML&#xff08;Unified Modeling Language&#xff0c;统一…

【Ubuntu】Ubuntu系统镜像

清华镜像源 Index of /ubuntu-releases/ | 清华大学开源软件镜像站 | Tsinghua Open Source MirrorIndex of /ubuntu-releases/ | 清华大学开源软件镜像站&#xff0c;致力于为国内和校内用户提供高质量的开源软件镜像、Linux 镜像源服务&#xff0c;帮助用户更方便地获取开源软…

测开知识点合集2

一、try .... catch.. AccessViolationException异常触发后&#xff0c;下列程序的输出结果为 static void Main(string[] args) { try { throw new AccessViolationException(); Console.WriteLine("error1"); } catch (Exception e) { Console.WriteLi…

stm32学习:(寄存器2)GPIO总体说明

目录 GPIO的主要特点 GPIO的8种工作模式 GPIO电路结构 GPIO输出模式 输出流程 复用输出模式 GPIO输入模式 输入流程 模拟输入流程 GPIO相关的7个寄存器 GPIOx_CRL GPIOx_CRH GPIOx_IDR GPIOx_ODR GPIOx_BSRR GPIOx_BRR GPIOx_LCKR 实例 三个灯流水灯 main.…