在dos窗口中编译和运行java文件的方法

 更新时间:2020年08月14日 10:58:11   作者:zjavers  
这篇文章主要介绍了在dos窗口中编译和运行java文件的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

配置path环境变量

在学习java时,配置path环境变量主要目的是让windows操作系统可以找到java.exe和javac.exe文件。
所以只要把带有java.exe和javac.exe的文件夹的路径配置到path环境变量中就行了。
path环境变量通过;(英文半角分号)分隔不同的路径。
JAVA_HOME的主要目的是为了方便用户更改jdk版本,可以在JAVA_HOME中直接更改而不用去path中更改,但是不使用JAVA_HOME,直接在path里去配置路径也没有任何问题。
我的电脑——>系统属性——>高级系统设置——>环境变量——>找到系统变量中的path添加路径例如本机中是
;D:\java\jdk1.8.0_201\bin
安装目录不同,以上的路径也不同。
配置成功后,在dos命令窗口中可以输入

java -version
or
javac -version

查看java或者javac 版本

java version "1.8.0_201"

出现版本号,就意味着配置成功,可以使用java和javac命令。
一般情况下,出现

'xxx' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

都是在path环境变量中找到没有相关的路径。

编译java文件

java文件都是以.java结尾的文件。
编译方式:在dos命令窗口中输入

javac 文件路径(包括文件名和后缀.java)

如何快速定位java文件路径

1)在java所在的文件目录中

在地址栏里输入cmd就可以快速定位(不包括文件名)

2)在java所在的文件目录中

按住shift键+鼠标右键,选择“在此处打开命令窗口”,也可以快速定位(不包括文件名)

3)神操作!!!!

可以把要编译的java文件直接拖拽到dos命令窗口中,会直接显示文件的路径包括文件名及后缀。

运行java程序

编译完java文件后,会在同一目录下生成一个文件名相同后缀名为.class的文件。如:
A.java —编译—>A.class
A.class是字节码文件,也是运行java程序的主要文件。
A.class类名为A,B.class类名为B。
运行方式:在dos命令窗口中输入

java  文件名(类名),不需要后缀.class
必须要在.class文件存在的目录中,执行命令。

执行java程序的过程

在dos命令窗口中输入java 类名后

  • 会先启动jvm(java虚拟机)
  • jvm启动“类加载器”(classloader),类加载器会在硬盘上找字节码文件。如:java a —找—> a.class文件
  • 如果没有找到相应的文件,会报错。

错误: 找不到或无法加载主类

如果找到了文件,类加载器会将改文件装载到jvm当中,jvm会启动“解释器”将字节码文件解释为“101000110”二进制码。操作系统执行二进制码与硬件交互。

在执行java程序的过程里上述的第二步中,类加载器在硬盘上找字节码文件的时候,默认情况下会在当前路径中找。所以在执行java命令时必须要在.class文件存在的路径中,执行命令。

classpath环境变量

配置classpath环境变量的目的是给类加载器指路。
当配置了classpath环境变量时,类加载器只会在classpath配置的路径中找,不会再去当前路径中找。

默认情况下:类加载器会到当前路径中找字节码文件。
配置classpath环境变量:类加载器会到指定的路径找字节码文件,如果指定的路径中没有相应的字节码文件,即使在当前路径下有相应的字节码文件,也会报错。

错误: 找不到或无法加载主类

总结

到此这篇关于在dos窗口中编译和运行java文件的文章就介绍到这了,更多相关dos窗口编译和运行java文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 从零开始学springboot整合feign跨服务调用的方法

    从零开始学springboot整合feign跨服务调用的方法

    这篇文章主要介绍了从零开始学springboot整合feign跨服务调用的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 修改及反编译可运行Jar包实现过程详解

    修改及反编译可运行Jar包实现过程详解

    这篇文章主要介绍了如何修改及反编译可运行Jar包,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 实例讲解Java批量插入、更新数据

    实例讲解Java批量插入、更新数据

    这片文章介绍了一个Java批量添加数据,多个字段同时添加多条数据具体实例,面向的是Oracle数据库,需要的朋友可以参考下
    2015-07-07
  • Mybatis输入输出映射及动态SQL Review

    Mybatis输入输出映射及动态SQL Review

    这篇文章主要介绍了Mybatis输入输出映射及动态SQL Review,需要的朋友可以参考下
    2017-02-02
  • Java中forEach使用lambda表达式,数组和集合的区别说明

    Java中forEach使用lambda表达式,数组和集合的区别说明

    这篇文章主要介绍了Java中forEach使用lambda表达式,数组和集合的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 简单了解Spring中常用工具类

    简单了解Spring中常用工具类

    这篇文章主要介绍了简单了解Spring中常用工具类,非常全面,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • 详解如何使用Mybatis的拦截器

    详解如何使用Mybatis的拦截器

    MyBatis 拦截器是 MyBatis 提供的一个强大特性,它允许你在 MyBatis 执行其核心逻辑的关键节点插入自定义逻辑,从而改变 MyBatis 的默认行为,本文给大家详细介绍了如何使用Mybatis的拦截器,需要的朋友可以参考下
    2024-03-03
  • java基于Apache FTP实现文件上传、下载、修改文件名、删除

    java基于Apache FTP实现文件上传、下载、修改文件名、删除

    本篇文章主要介绍了Apache FTP实现文件上传、下载、修改文件名、删除,实现了FTP文件上传(断点续传)、FTP文件下载、FTP文件重命名、FTP文件删除等功能,有需要的可以了解一下。
    2016-11-11
  • spring-boot-starter-web更换默认Tomcat容器的方法

    spring-boot-starter-web更换默认Tomcat容器的方法

    Spring Boot支持容器的自动配置,默认是Tomcat,当然我们也是可以进行修改的。下面小编给大家带来了spring-boot-starter-web更换默认Tomcat容器的方法,感兴趣的朋友跟随小编一起看看吧
    2019-04-04
  • Java用邻接矩阵存储图的示例代码

    Java用邻接矩阵存储图的示例代码

    邻接矩阵通常采用一个一维数组存储图中节点的信息,采用一个二维数组存储图中节点之间的邻接关系。本文将利用Java实现用邻接矩阵存储图,需要的可以参考一下
    2022-06-06

最新评论