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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
JAVA简单工厂模式(从现实生活角度理解代码原理)
SpringBoot中配置Web静态资源路径的方法
![](https://img.aspxhome.com/file/2023/4/72564_0s.png)
Spring AOP实现权限检查的功能
![](https://img.aspxhome.com/file/2023/5/69285_0s.png)
简单了解Spring beanfactory循环依赖命名重复属性
![](https://img.aspxhome.com/file/2023/3/75013_0s.png)
Spring AOP面向切面编程实现原理方法详解
带你了解如何使用Spring基于ProxyFactoryBean创建AOP代理
IDEA中Mybatis的MGB使用逆向工程配置的详细教程
![](https://img.aspxhome.com/file/2023/3/88583_0s.png)
Java实现时间日期格式转换示例
详解利用SpringCloud搭建一个最简单的微服务框架
![](https://img.aspxhome.com/file/2023/0/88560_0s.png)
深入解析Java接口(interface)的使用
关于maven全局配置文件settings.xml解析
![](https://img.aspxhome.com/file/2023/3/66233_0s.jpg)
快速学习六大排序算法
![](https://img.aspxhome.com/file/2023/5/105175_0s.gif)
mybatis查询语句揭秘之参数解析
c#模拟js escape方法的简单实例
IDEA 2020.1 搜索不到Chinese (Simplified) Language Pack EAP,无法安装的问题
![](https://img.aspxhome.com/file/2023/6/59316_0s.jpg)
java 进制转换实例详解
再谈java回调函数
springboot常用注释的讲解
详解Java设计模式之备忘录模式的使用
![](https://img.aspxhome.com/file/2023/7/58437_0s.jpg)