03、第一个 Java 程序运行过程以及运行过程中常见的问题及解决方案

第一个 Java 程序运行

  • 1、新建文本文件并以 .java 结尾:
    • 其一、第一个 java 程序的代码为:
    • 其二、代码截图为:
  • 2、 .java 文件编译的过程:
    • 其一、将 Java 代码编写到扩展名为 .java 的文件中(即:源文件):
    • 其二、通过 javac 命令对该 java 文件进行编译(即:生成 .class 的字节码文件):
    • 其三、通过 java 命令对生成的 class 文件进行运行(即:生成运行结果):
    • 其四、命令运行第一个 java 程序的整个过程:
  • 3、 Windows 命令行窗口执行 .java 文件的过程:
    • 其一、找到待执行的 .java 文件的目录:
    • 其二、执行 javac + 源文件全名 的命令:
    • 其三、执行 java + 字节码文件 的命令:
  • 4、 运行第一个 Java 程序可能出现的问题:
    • 其一、执行 javac 命令出现多余的符号会报错:
    • 其二、执行 javac 命令输错文件名称会报错:
    • 其三、java 虽然严格执行大小写,但 Windows 执行命令不区分大小写:
    • 其四、执行 java 命令输错文件名称会报错:
    • 其五、java 虽然严格执行大小写,但在用 java 命令执行类名时要严格执行大小写:
    • 其六、执行 java 命令,可能存在的问题:
    • 其七、关于代码,可能存在问题:
  • 5、小结:

1、新建文本文件并以 .java 结尾:

其一、第一个 java 程序的代码为:


class HelloChina{public static void main(String[] args){System.out.println("Hello,World!");}}

其二、代码截图为:

在这里插入图片描述

在这里插入图片描述

2、 .java 文件编译的过程:

其一、将 Java 代码编写到扩展名为 .java 的文件中(即:源文件):

// 即:.java 文件是源文件;
在这里插入图片描述

其二、通过 javac 命令对该 java 文件进行编译(即:生成 .class 的字节码文件):

// 即:.java 文件(即:源文件)通过 javac.exe 命令编译成 .class 文件(即:字节码文件);

在这里插入图片描述

其三、通过 java 命令对生成的 class 文件进行运行(即:生成运行结果):

// 即:.class 文件(即:字节码文件)通过 java.exe 命令生成运行结果;

在这里插入图片描述

其四、命令运行第一个 java 程序的整个过程:

在这里插入图片描述

3、 Windows 命令行窗口执行 .java 文件的过程:

其一、找到待执行的 .java 文件的目录:

// 例如:我对应的目录为:D:\18otherProject\10\04code\day01

在这里插入图片描述

其二、执行 javac + 源文件全名 的命令:

// 注意:一定要带上 .java 的源文件全名;

// 即:命令是 javac HelloWorld.java

在这里插入图片描述

// 此时没有报错,就说明其命令执行是正确的;

// 且在该文件目录下,生成了 HelloChina.class 字节码文件;

// 注意:此时的 HelloChina.class 字节码文件的文件名是 .java 源文件中的类名;

在这里插入图片描述

其三、执行 java + 字节码文件 的命令:

// 注意:此时不用带上 .class 文件(即:字节码文件) 的全名;

// 即:命令是 java HelloChina

在这里插入图片描述

// 此时没有报错,并能将打印的信息值打印出来,此时就说明第一个 Java 程序就成功运行了;

在这里插入图片描述

4、 运行第一个 Java 程序可能出现的问题:

其一、执行 javac 命令出现多余的符号会报错:

// 此时的 javac HelloWorld.java; 命令中,本应该是 javac HelloWorld.java 命令,却多了个 ;,因此出现了报错;

在这里插入图片描述

其二、执行 javac 命令输错文件名称会报错:

// 此时的 javac HelloWor1d.java 命令中,本应该是 javac HelloWorld.java 命令,我将 l 输错成了 1,因此报了找不到文件 HelloWor1d.java 的错误;

在这里插入图片描述

其三、java 虽然严格执行大小写,但 Windows 执行命令不区分大小写:

// 由于 java 严格执行大小写,因此按道理讲执行 javac helloworld.java 命令是不成功的,但是其执行成功了;
// 原因:不是 java 识别命令不区分大小写,而是 Windows 不区分大小写,而 javac helloworld.java 命令在找文件的过程中还是属于 Windows 下的操作,因此此时的 helloworld.java 大小写无所谓;

在这里插入图片描述

其四、执行 java 命令输错文件名称会报错:

// 此时的 java HelloChinaa 命令中,本应该是 java HelloChina 命令,而我多输入一个 a ,因此会报错;

在这里插入图片描述

其五、java 虽然严格执行大小写,但在用 java 命令执行类名时要严格执行大小写:

// 此时的 java Hellochina,用 java 命令执行 HelloChina 类时,一定要严格执行大小写,因为此时已经在 java 层面,而不是 Windows 层面,因此要严格执行 HelloChina 类名;

// 否则就会报错;

在这里插入图片描述

其六、执行 java 命令,可能存在的问题:

// 虽然执行的 java HelloChina 命令,文件名及路径都没有问题,但是仍旧报错 错误: 找不到或无法加载主类 HelloChina 的原因:可能在环境中配过 ClassPath 的环境变量;

// ClassPath 是指:class 文件的路径,若配过 ClassPath,那么在生成的 .class 文件后那么就会在配的 ClassPath 路径下去找寻生成的 .class 文件(即:java HelloChina 文件),而不是在 D:\18otherProject\10\04code\day01 目录下去寻找 .class 文件(即:java HelloChina 文件),因此会报此错误;

// 解决方案:去掉配置的 ClassPath 路径,默认就是在 D:\18otherProject\10\04code\day01 目录下去寻找 .class 文件(即:java HelloChina 文件);

在这里插入图片描述

在这里插入图片描述

其七、关于代码,可能存在问题:

// java 是区分大小写的,因此 class 写成 Class 运行程序是会报错的;

// 错误的类名
Class HelloChina{public static void main(String[] args){System.out.println("Hello,World!");}}

// javac 编译的时候报错:
// 报错的原因:就是使用了 Class 第一个字母大写了;
// 同理:public static void main 这些单词都要按照要求写,否则会报错;

在这里插入图片描述

// 如:打印语句少了一个分号:


class HelloChina{public static void main(String[] args){System.out.println("Hello,World!")}}

// javac 编译的时候报错:
// 报错的原因:就是 System.out.println("Hello,World!") 语句,少了一个英文分号;

在这里插入图片描述

// 若修改成了中文分号,还是报错:
// 原因:输入了一个中文分号,被识别为了非法字符;

在这里插入图片描述

5、小结:

其一、哪里有不对或不合适的地方,还请大佬们多多指点和交流!
其二、若有转发或引用本文章内容,请注明本博客地址(直接点击下面 url 跳转) https://blog.csdn.net/weixin_43405300,创作不易,且行且珍惜!

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

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

相关文章

若依前后端分离版 集成 腾讯云 COS

原因: 最近在根据一个若依二开的项目继续进行开发,当添加到轮播图模块的时候,涉及到了图片上传,由于公司以前一直使用的是腾讯云COS(不是阿里云OSS),在网上搜索一番后,没有找到 若依…

【笔记目录】

目录 001、流程 - - 入金申请 002、流程 - - 出金申请 003、流程 - - 用户注册 004、关系 - - 客服业绩统计报表 005、单词 - - 业务单词

亚信安慧AntDB:挑战的创新之道

在当今快速变化的商业环境中,企业需要能够快速适应业务需求的变化,并能够实现数据的实时更新和处理,以便及时获取最新信息和洞察。AntDB作为一种创新的数据库解决方案,正是能够满足这些需求的利器。 AntDB以其强大的功能和灵活的…

浏览器原理---浏览器本地存储

1、浏览器本地存储方式及使用场景 (1)Cookie Cookie是最早被提出来的本地存储方式,在此之前,服务端是无法判断网络中的两个请求是否是同一用户发起的,为解决这个问题,Cookie就出现了。Cookie的大小只有4kb&…

深入OceanBase分布式数据库:MySQL 模式下的 SQL 基本操作

码到三十五 : 个人主页 OceanBase与MySQL模式下兼容性序 在当今的大数据时代,数据库技术的选择对于企业的信息化发展至关重要。OceanBase作为一种高性能、高可用的分布式关系数据库,在与MySQL模式的兼容性方面展现出了显著的优势&#xff0c…

【SpringBoot】数据脱敏

文章目录 什么是数据脱敏JsonSerialize自定义Jackson注解定制脱敏策略定制JSON序列化实现脱敏工具类 定义Person类,对其数据脱敏模拟接口测试总结 什么是数据脱敏 数据脱敏,也称为数据的去隐私化或数据变形,是一种技术手段,用于对…

vue各种时间类型转换

时间范围[2024-04-17 14:36:27, 2024-04-24 14:36:27] console.log(this.$getRecentDays()); 页面使用默认7天 也可以指定console.log(this.$getRecentDays(30)); [2024-04-17 14:36:27, 2024-04-24 14:36:27] 默认值 function getDateString (date, fmt yyyy-MM-dd) {if…

【问题实操】银河高级服务器操作系统实例分享,配置hugepages启动异常

1.问题现象 某运营商国产服务器操作系统项目,部署Kylin-Server-0524-aarch64服务器系统,内核从4.19.90-24.4升级到4.19.90-25.14。在grub中配置huagepages大页内存后,系统在内核启动阶段黑屏,只显示一个光标。grub配置如下图&…

Vue3框架

Vue3框架 一.使用create-vue搭建Vue3项目二.组合式API - setup选项1.setup选项的写法和执行时机2.setup中写代码的特点3. script setup 语法糖 三.组合式API - reactive和ref函数1. reactive2. ref3. reactive 对比 ref 四.组合式API - computed五.组合式API - watch1. 侦听单个…

Gone框架介绍3 - 使用gone命令,自动生成Priest函数

文章目录 1. 安装辅助工具: gone2. 创建一个名为gen-code的新项目3. 创建Goner4. 使用辅助工具5. 添加main函数 我在两年前实现了一个Golang的依赖注入框架,并且集成了gin、xorm、redis、cron、消息中间件等功能,自己觉得还挺好用的;之前一直…

Linux Mint 21.3 “Virginia“ 简介

Linux Mint 21.3 "Virginia" 是Linux Mint项目发布的最新版本,这个版本基于Ubuntu 22.04 LTS(Jammy Jellyfish),并提供了三个主要的桌面环境:Cinnamon、MATE和Xfce。每个桌面环境都有其独特的特点和优势&…

Unity射击游戏开发教程:(8)构建 UI 元素:添加分数显示

用户界面决定用户如何与屏幕交互。UI 适用于所有类型的游戏和应用程序,在此示例中,我们将为我的太空射击游戏设置一个简单的记分板。 第一步是在层次结构中创建一个 UI 元素。只需在层次结构中右键单击,滚动 UI 并选择要添加的 UI 元素类型。在本例中,我们将使用文本元素。…

编程新手如何快速提升编码能力?

编程新手想要快速提升编码能力,可以遵循以下几个策略: 基础扎实:首先,确保你对所学编程语言的基础概念有深刻理解,包括变量、数据类型、控制结构(如循环、条件语句)、函数、类和对象&#xff08…

使用 Docker 自建一款怀旧游戏之 - 扫雷

1)扫雷 简介 扫雷 是一种经典的单人电脑游戏,最初由微软公司在 1990 年代开发并内置在 Windows 操作系统中。游戏的目标是在一个由方块组成的网格上揭开所有非地雷的方块,而不触发地雷。每个方块上都标有数字,表示周围 8 个方块中…

Java网址url工具类

功能描述 无需引入三方依赖文本匹配网址(支持多个)网址解析(包括协议、主机、路径、参数等) package com.qiangesoft.image.utils;import org.springframework.util.Assert; import org.springframework.util.CollectionUtils;i…

行为学学习记忆实验和抗焦虑实验两款硬件

安徽耀坤XWX-BM八臂迷宫实验(Eight-arm Maze Test,RMT)由八个完全相同的臂组成,这些臂从一个中央平台放射出来,所以又被称为放射迷宫。其基本方式是:训练动物受食物的驱使对迷宫的各臂进行探究,…

xLua背包实践

准备工作 环境,代码 在C#代码方面我们需要准备单例模式基类,AB包管理器,lua解析器管理器 详情请见AB包管理器 xlua详解 然后是Xlua包和AB包,具体导入方法也在上面的链接中 然后是lua的三个文件 具体代码: JsonUtil…

SSH Config 后门 | Linux 后门系列

ssh 客户端配置文件加载顺序 命令行参数 > ~/.ssh/config > /etc/ssh/ssh_config Ubuntu server 16.04 默认 /etc/ssh/ssh_config # Host * # ForwardAgent no # ForwardX11 no # RhostsRSAAuthentication no # RSAAuthentication …

一、OSPF基础

目录 1.路由协议的优先级 2.转发原则:最长匹配原则 3.负载分担 4.路由备份(浮动路由) 5.路由协议的分类 6.动态路由 7.距离矢量路由协议(BGP,RIP) 8.链路状态路由协议(OSPF,I…

联系Odoo partner邮件怎么写

亲爱的Odoo 伙伴 我是广东同欣的惊蛰,我通过Odoo官方的珠三角 Partner列表找到了你。 GuangDong TongXin Ai Technology Co., Ltd.,是一家面向中国提供Odoo服务的高科技公司。同欣总部位于广州,目前客户覆盖在广州,深圳&#…