cmd中javac和java使用及注意事项

cmd中javac和java使用及注意事项一、简述:cmd中,执行java命令与javac命令的区别:javac:是编译命令,将java源文件编译成.class字节码文件。例如:javachello.java将生成hello.class文件。 java:是运行字节码文件;由java虚拟机对字节码进行解释和运行。例如:javahello 二、详述:下面我们来写个java文件试试。1、打开记事本…

大家好,又见面了,我是你们的朋友全栈君。

一、简述:

cmd中,执行java命令与javac命令的区别:

javac:是编译命令,将java源文件编译成.class字节码文件。

例如:javac hello.java

将生成hello.class文件。

 

java:是运行字节码文件;由java虚拟机对字节码进行解释和运行。

例如:java hello

 

二、详述:

下面我们来写个java文件试试。

1、打开记事本,输入一个类+主函数

cmd中javac和java使用及注意事项

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

2、点击 文件->保存,保存到相应文件夹下,文件名修改了xxx.java

cmd中javac和java使用及注意事项

cmd中javac和java使用及注意事项

3、在Hello.java文件夹内,空白位置,按住键盘Shift,右击鼠标,选择“在此处打开命令窗口”

cmd中javac和java使用及注意事项

cmd中javac和java使用及注意事项

4、输入 javac Hello.java 回车

如果java类书写格式没有错误,cmd不会报错,而且在java文件同目录内生成一个class文件。

cmd中javac和java使用及注意事项

cmd中javac和java使用及注意事项

5、输入 java Hello 回车

若输出下图,恭喜你,成功了!你已经把java类中,输出打印“Hello World”显示在cmd命令行中。

cmd中javac和java使用及注意事项

 

三、总结:

首先我们使用记事本编写java源代码,扩展名.java;

在命令行模式中,输入命令:javac 源文件名.java,对源代码进行编译,生成class字节码文件;

编译完成后,如果没有报错信息,输入命令:java Hello,对class字节码文件进行解释运行,打印“Hello World”。

为了方便大家理解javac和java编译运行过程,可以看下图:

cmd中javac和java使用及注意事项

至此,我相信大家应该对javac和java使用有了比较客观的了解。

 

四、答疑:

接下来,我们来看一下大家在实践中容易遇到的问题。

问题一:cmd命令一定要准确,区分大小写,注意是否要加扩展名。

javac Hello.java

java Hello

问题二:javac命令报错,如下图

cmd中javac和java使用及注意事项

javac命令报错,一般都是java代码有误,需要检查修改。

下图中,java代码很明显的错误,输出打印语句写在了main函数的外面,修改正确就不会报错了。

javac命令报错,去看java代码,肯定有错误。

cmd中javac和java使用及注意事项

问题三:javac命令执行完成,生成class文件,但是java命令报错,如下图

cmd中javac和java使用及注意事项

我查阅资料,找到报错的原因,首先检查java源代码,记住,java类不要加package路径!再就是java环境变量有问题,咱们一起来检查一下。

右击“计算机-属性-高级系统设置”,单击“环境变量”。我相信大家都已经配置java环境变量,咱们来检查一下,如果不会配置java环境变量,请查看java开发配置环境变量https://blog.csdn.net/yongfeng929/article/details/73733973

cmd中javac和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”

特别注意变量值开头是”.;”(点分号),这个地方需要特别注意,我就是因为这个点和分号不对报错的。

cmd中javac和java使用及注意事项

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,收费软件网上都有破解方法,但是破解版不如免费版稳定,大家可以自行选择。

cmd中javac和java使用及注意事项

因时间仓促,作者水平有限,文中难免有不足之处,恳请大家批评指正。

 

end

—————————————————————————————————–

注:作者 望穿秋水见伊人,本人使用Windows 7旗舰版64位操作系统

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140111.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WebService—规范介绍和几种实现WebService的框架介绍

    WebService—规范介绍和几种实现WebService的框架介绍一、关于SOA(面向服务架构)思想1、关于协议2、SOA的诞生SOA(Service-OrientedArchitecture)面向服务架构是一种思想,它将应用程序的不同功能单元通过中立的契

    2022年7月3日
    22
  • mysql 字符串动态拼接_mysql中的字符串的拼接「建议收藏」

    mysql 字符串动态拼接_mysql中的字符串的拼接「建议收藏」字符串的拼接1,Mysql在Java、C#等编程语言中字符串的拼接可以通过加号“+”来实现,比如:”1″+”3″、”a”+”b”。在MYSQL中也可以使用加号“+”来连接两个字符串,比如下面的SQL:Sql代码SELECT’12’+’33’,FAge+’1’FROMT_Employee执行结果Sql代码’12’+’33’FAge+’1’4526452945244526…

    2022年9月26日
    0
  • java数组返回元素位置_把返回值用数组形式返回java

    java数组返回元素位置_把返回值用数组形式返回javaimportjava.util.Scanner;importjavax.xml.soap.SAAJResult;/***@author大杨*@date2019年8月13日下午3:10:52*/publicclassLinearArray{publicstaticvoidmain(String[]args){Scannerinput=newScan…

    2022年9月16日
    0
  • golang 数据库开发(golang append)

    前言:微博参与话题#给你四年时间你也学不会生信#先前的富集分析教程本文主要针对非模式物种,但是有参考基因组可用1.R包安装及database下载#non-model,buthavethegenome>source(“https://bioconductor.org/biocLite.R”)>biocLite(“AnnotationHub”)>biocLite(…

    2022年4月14日
    70
  • Blazor入门_blazor视频教程

    Blazor入门_blazor视频教程NOW现在行动!Blazor是一个基于C#,Razor和HTML的新的WebUI框架。它通过WebAssembly运行在浏览器中。有利于使用C#而…

    2025年6月3日
    0
  • 指令重排详解_cpu指令重排序

    指令重排详解_cpu指令重排序指令重排:编译器指令重排,cpu指令重排,内存指令重排。编译器可能会调整顺序,如下图,左边是c++源码,右边是优化后顺序一条汇编指令的执行是可以分为很多步骤的,分为不同的硬件执行取指IF译码和取寄存器操作数ID执行或者有效地址计算EX(ALU逻辑计算单元)存储器访问MEM写回WB(寄存器)指令重排只可能发生在毫无关系的指令之间,如果指令之间存在依赖关系,则不会重排。单线程内程序的执行结果不能被改变。1原子性是指一个操作是不可中断的.

    2022年10月17日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号