跨平台是软件开发中一个重要的概念,即不依赖于操作系统,也不依赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。
通过Java语言编写的应用程序在不同的系统平台上都可以运行。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。在windows编译的c语言程序,在linux下是不能运行的。当然在linux下编译的c语言程序在windows下也是不能运行的。而Java语言在不同平台上运行时不需要重新编译。
Java跨平台的原理:Java的跨平台是通过Java虚拟机(JVM)来实现的。
java虚拟机相当于计算机系统(操作系统 硬件环境),java解释器相当于CPU,这个CPU不是硬件实现的,而是特定平台下的一个应用程序,只要实现了特定平台下的解释器程序,java字节码就可以通过解释器程序在该平台下运行,这也是java跨平台的根本。
javase:是为开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。比如Java版的扫雷。
javaee:是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如 Servlet Jsp等,主要针对于Web应用程序开发。
javame:是为开发电子消费产品和嵌入式设备提供的解决方案。该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。
JDK是整个java的核心,包括了java运行环境,java工具和java基础类库。
java运行环境,包括java虚拟机和java程序所需的核心类库,如果只是运行开发好的java程序,只需要安装JRE即可。
在dos窗口中输入javac,程序会提示不是内部或外部命令,原因是在当前目录下找不到指定的可执行文件,所以就会根据path环境变量设置的值去搜索这个可执行文件,如果存在则启动该程序,如果不存在,则不启用该程序。
我们可以在环境变量中把java的bin目录添加到path中。
有时候会更换JDK的目录,这样也需要修改path环境变量的值,频繁的修改path值很可能会修改错误,此时可以添加JAVA_HOME环境变量,把JDK的安装目录进行添加,然后就可以使用%JAVA_HOME%/bin配置path。
classpath:我们在控制台启动java虚拟机的时候,如果没有配置classpath,java虚拟机会在当前控制台所在路径搜索是否存在指定的class文件;如果配置了classpath,java虚拟机启动的时候会根据classpath指定的路径搜索指定的class文件,不推荐设置该变量。
来源:https://www.icode9.com/content-1-460801.html联系客服