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,一经查实,立即删除!

相关文章

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

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

【SpringBoot】数据脱敏

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

【问题实操】银河高级服务器操作系统实例分享,配置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、消息中间件等功能,自己觉得还挺好用的;之前一直…

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

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

使用 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…

SpringBoot配置HTTPS及开发调试

前言 在实际开发过程中,如果后端需要启用https访问,通常项目启动后配置nginx代理再配置https,前端调用时高版本的chrome还会因为证书未信任导致调用失败,通过摸索整理一套开发调试下的https方案,特此分享 后端配置 …

西瓜书学习——决策树形状、熵和决策树的本质

文章目录 决策树形状监督学习算法分类与回归 熵信息熵香农熵 (Shannon Entropy) - H(X)联合熵 (Joint Entropy) - H(X, Y)条件熵 (Conditional Entropy) - H(Y|X)互信息 (Mutual Information) - I(X; Y)相对熵 (Relative Entropy) / KL散度 (Kullback-Leibler Divergence) - DK…

misc学习

一.知识点 1.BMP文件 BMP文件主要有四部分组成,位图头、位图信息、调色板、位图数据。 bmp文件头(bmp file header):提供文件的格式、大小等信息 位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息…

JAVA顺序表相关习题1

1.笔试题:cvte str1 :welcome to cvte str2:come 描述:删除第一个字符串当中出现的所有的第二个字符串的字符!结果:wlt vt 要求 用ArrayList完成! public class Test {public static List<Character> findSameWords(String u1, String u2){List<Character> listn…

Sora新突破!AI生成电影迈向新阶段,配音版Sora登场!将如何改变影视行业?

Sora之后迎来新突破&#xff01; 配音版Sora来袭&#xff0c;AI生成电影又更近一步&#xff01; 在2024年伊始&#xff0c;人工智能界迎来了一次创新性的突破&#xff0c;由AI语音技术的先锋公司ElevenLabs带头实现。他们最近的成就体现在为OpenAI的Sora视频模型提供了令人动容…

tiktok如何影响用户行为的分析兼论快速数据分析的策略

tiktok如何影响用户行为的分析 快速数据分析的策略流程&#xff1a; 1.确定指标变量&#xff0c;也就确定了数据分析想要回答的问题。想回答不同的问题&#xff0c;就选择不同的指标变量。 变量筛选方法选出指标变量相关的变量&#xff1b; 针对筛选出的变量进行描述性分析和因…

【网站项目】家庭理财系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

金三银四面试题(二十三):装饰器模式知多少?

什么是装饰器模式 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许动态地向对象添加新的行为&#xff0c;而无需修改原始对象的结构。通过将对象包装在一个或多个装饰器对象中&#xff0c;装饰器模式可以增强原始对象的功能。 装…