cmd中javac和java使用及注意事项详解
作者:望穿秋水见伊人 发布时间:2022-03-25 10:37:36
一、简述:
cmd中,执行java命令与javac命令的区别:
javac:是编译命令,将java源文件编译成.class字节码文件。
例如:javac hello.java
将生成hello.class文件。
java:是运行字节码文件;由java虚拟机对字节码进行解释和运行。
例如:java hello
二、详述:
下面我们来写个java文件试试。
1、打开记事本,输入一个类+主函数
public class Hello{
public static void main(String[] args) {
System.out.println("Hello World");
}
}
3、在Hello.java文件夹内,空白位置,按住键盘Shift,右击鼠标,选择“在此处打开命令窗口”
4、输入 javac Hello.java 回车
如果java类书写格式没有错误,cmd不会报错,而且在java文件同目录内生成一个class文件。
5、输入 java Hello 回车
若输出下图,恭喜你,成功了!你已经把java类中,输出打印“Hello World”显示在cmd命令行中。
三、总结:
首先我们使用记事本编写java源代码,扩展名.java;
在命令行模式中,输入命令:javac 源文件名.java,对源代码进行编译,生成class字节码文件;
编译完成后,如果没有报错信息,输入命令:java Hello,对class字节码文件进行解释运行,打印“Hello World”。
为了方便大家理解javac和java编译运行过程,可以看下图:
至此,我相信大家应该对javac和java使用有了比较客观的了解。
四、答疑:
接下来,我们来看一下大家在实践中容易遇到的问题。
问题一:cmd命令一定要准确,区分大小写,注意是否要加扩展名。
javac Hello.java
java Hello
问题二:javac命令报错,如下图
javac命令报错,一般都是java代码有误,需要检查修改。
下图中,java代码很明显的错误,输出打印语句写在了main函数的外面,修改正确就不会报错了。
javac命令报错,去看java代码,肯定有错误。
问题三:javac命令执行完成,生成class文件,但是java命令报错,如下图
我查阅资料,找到报错的原因,首先检查java源代码,记住,java类不要加package路径!再就是java环境变量有问题,咱们一起来检查一下。
右击“计算机-属性-高级系统设置”,单击“环境变量”。我相信大家都已经配置java环境变量,咱们来检查一下。
逐一核对 ”JAVA_HOME” “Path” “CLASSPATH”
(1)"JAVA_HOME",变量值是你的电脑JDK的安装路径,我的是"D:\java\tool\java1.8\JDK"
(2)"Path",在原变量值的最后面加上”;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
(3)”CLASSPATH”,变量值”.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”
特别注意变量值开头是”.;”(点分号),这个地方需要特别注意,我就是因为这个点和分号不对报错的。
java源码修改后,需要把之前生成的class文件删除,从新运行javac和java命令。
环境变量修改后,一定要重启cmd命令行窗口,再把把之前生成的class文件删掉,重新运行javac和java命令。
注:若在输入javac命令时,显示'javac'不是内部或外部命令,原因也是因为没有提前安装好JDK开发环境或环境变量配置有误。
五、作者推荐
cmd命令行运行java代码是最基础,而且都应该掌握的方式,特别是对于新人来说,应该最先接触学习。随着学习的深入,如果觉得记事本写java代码太low,作者推荐使用EditPlus,功能很强大的体积又很小的文本编辑软件,是收费软件,不过破解很简单,大家可以百度一下。然后大家会用到专业的IDE(Integrated Development Environment,集成开发环境)软件,如Eclipse(免费),MyEclipse(收费),IntelliJ IDEA(收费)等等,目前我只接触到以上列举的三款IDE,免费的推荐Eclipse,收费的推荐IntelliJ IDEA,收费软件网上都有破解方法,但是破解版不如免费版稳定,大家可以自行选择。
因时间仓促,作者水平有限,文中难免有不足之处,恳请大家批评指正。
来源:https://blog.csdn.net/peng86788/article/details/81296882


猜你喜欢
- 内存分配方式简介在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈:在执行函数时,函数内局部变量的存
- Java API不能远程访问HBase今天我在虚拟机里面安装了Hbase 1.2.4,说在windows上Java API调用访问下玩玩,结
- 通过下面一张图看下要实现的功能,具体详情如下所示:现在我就来介绍些软件的其它功能。希望大家有所受益。模拟人为搜索商品在刷单的时候,不能直接拿
- Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试;生成测试数据初始化数据库用于测试;Spr
- 格式要求:SU MO TU WE TH FR SA &nb
- 今天启动springboot项目时失败了解决检查原因发现是启动类的MapperScan("")的值写到类名了,改成类所在
- 初步探索首先我们要了解equals方法是什么,hashcode方法是什么。equals方法equals 是java的obejct类的一个方法
- 创建项目在主界面的左侧菜单选 新建在向导中选择 输入项目名称,类型选择 构建一个自由风格的软件项目点确定进入项目的配置界面源码管理 选择gi
- 本文实例讲述了Java编程实现向文本文件中读取数据之Scanner用法。分享给大家供大家参考,具体如下:使用Scanner类来读取文件我们使
- 本人是用易语言起步的,起初是为了兴趣,后来由于易语言被杀软误杀严重,连空白程序都杀,后来转到了学C#,随着学习的深入,接触越来越复杂的东西之
- 本文实例讲述了C#正则表达式匹配与替换字符串功能。分享给大家供大家参考,具体如下:事例一:\w+=>[A-Za-z1-9_],\s+=
- 一、问题描述在接受 mq 消息的时候,需要做一个重试次数限制,如果超过 maxNum 就发邮件告警,不再重试。 所以我需
- java缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装。当对文件或其他目标频繁读写或操作效率低,效能差。这
- 1. 通过设置采样率压缩res资源图片压缩 decodeResource public Bitmap decodeSampled
- 1、引言在SpringMVC的使用中,后端与前端的交互一般是使用Json格式进行数据传输,SpringMVC的@Response
- MoshiMoshi是一个对Kotlin更友好的Json库,square/moshi: A modern JSON library for
- 本文实例讲述了C#通过html调用WinForm的方法。分享给大家供大家参考,具体如下:完整测试代码:Form1.cs:using Syst
- 一、对Canvas进行操作对Canvas的一系列操作,是指对Canvas进行旋转、平移、缩放等操作。这些操作可以让Canvas对象使用起来更
- Spring @RequestParam对象绑定在Spring中,如果在方法参数列表中使用@RequestParam标注多个参数,会让映射方
- **写作原因:跨进程通信的实现和理解是Android进阶中重要的一环。下面博主分享IPC一些相关知识、操作及自己在学习IPC过程中的一些理解