1. java特性

1.1 跨平台

即不依赖于操作系统,也不信赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。

1.2 Java的跨平台

“一次编写,到处运行”(Write once, run anywhere、WORA)。
Java的跨平台是相对于其他编程语言而言的,通过Java语言编写的应用程序在不同的系统平台上都可以运行。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。在windows编译的c语言程序,在linux下是不能运行的。当然在linux下编译的c语言程序在windows下也是不能运行的。而Java语言在不同平台上运行时不需要重新编译。
Java跨平台的原理:Java的跨平台是通过Java虚拟机(JVM)来实现的。

1.3 Java虚拟机(JVM)

JVM 事实上是一个软件,这个软件为 Java 程序模拟出一个统一的运行环境。 Java 程序只
需要适应这个虚拟的环境,而与底层真正的硬件环境及操作系统环境无关。换句话说,JVM
的作用在于,它屏蔽了底层不同平台的差异。
Java 虚拟机接收.class 文件中的虚拟指令,这些指令很类似于真正的汇编语言指令,但
这些指令与底层的操作系统平台和硬件平台无关, 完全是另外设计出的一套独立体系。 而不
同平台下的 Java 虚拟机,在执行时,会把.class 文件中的虚拟机指令翻译成对应平台上真正
的计算机指令。因此,我们可以修改上面的示意如下:
.java 源文件 – 编译 --> .class 字节码文件 –在 JVM 中解释执行–> 真正的机器指令

2. 环境搭建

2.1 JDK与JRE

如果一个程序员要发布 Java 程序,一般来说,会发布.class 文件。而如果要运行 Java
程序,同样指的是运行.class 文件。因此,运行 Java 程序,只需要 Java 虚拟机和解释器就可
以运行。即 JRE,也就是 Java Runtime Environment 的缩写,指的是 Java 的运行环境。包括
JVM 和 Java 解释器。
但是仅仅有 JRE,只能是完成.从 class 文件到真正的机器指令这一步,而无法把一个源
文件编译成一个.class 文件。在 Sun 公司的网站上,有一个术语叫做 JDK。所谓的 JDK,指
的是 Java Development Kit,Java 开发工具包。从内容上说,JDK = JRE + 工具(编译器、调试器、其他工具„„) + 类库。

2.2 安装JDK

进行 Java 开发,至少要有 JDK。下载之后进行安装
下载链接:

2.3 配置环境变量

  1. JAVA_HOME

    这是jdk的安装路径
  2. CLASSPATH

    你没有看错,值就是.
  3. PATH

    不要改原来的内容,新建一个,jdk下的bin目录

2.4 查看是否成功

java -version

java可以不在虚拟机运行吗_Java


出现版本号就说明成功了

3. 进入正题,第一个java程序

  1. 首先我们写出 HelloWorld 程序的代码。 在硬盘上创建一文本文件,将其重命名为 HelloWorld.java(此处java是扩展名), 并用记事本打开这个文件,书写如下内容。注意:区分大小写,并注意空格:
public class HelloWorld{
	public static void main(String args[]){
		System.out.println("Hello World");
	}
}
  1. 代码写完之后保存。然后在cmd中,进入这个.java 文件所在位置,使用下面的命令来进行编译:
javac HelloWorld.java

编译成功时如下图,多出一个.class的字节码文件:

java可以不在虚拟机运行吗_Java_02


3. 在命令行上,用下面的命令来执行:

java HelloWorld

执行结果如下,在屏幕上打印出一个“Hello World”的字符串。:

java可以不在虚拟机运行吗_java可以不在虚拟机运行吗_03


如果成功看到“Hello World”的字符串,那么,请记住这个java开发的正确流程。

4. 一些小细节

  1. main函数,你就按固定写法来写即可,java程序的入口。
  2. 严格区分大小写
  3. 出现HelloWorld.java.txt的情况
    因为windows的文本文件默认是txt结尾的,注意要把隐藏已知文件类型扩展名去掉。

5. 结尾

写错的地方、不清楚的地方,还请各位大佬指出。