Java文件的 编译、打包、运行
1.Java环境(JVM、JDK、JRE的关系)
JDK(Java Development Kit) : JDK是 Java 语言的软件开发工具包(SDK) 包含了 JVM + JRE + JAVA工具(jar、javac、java) JRE(Java Runtime Environment) : Java程序的运行环境 包括Java虚拟机(jvm)、Java核心类库和支持文件 不包含开发工具(JDK)--编译器、调试器和其它工具 JVM(Java Virtual Machine) : 运行所有Java程序的抽象计算机,是Java语言的运行环境


2.Java程序开发步骤


3. 关于编译-javac
3.1 什么是编译
将 java文件 转换成 class文件
在 java中使用 jdk提供的工具进行编译
语法:
javac <options> <source files>
3.2 编译 单个无包结构的 java文件
//1. 创建 One.java 文件 public class One { public static void main(String[] args) { System.out.println("One启动了"); } } //2. 执行编译命令,生成 .class 文件 javac One.java 生成: One.class //3. 运行 .class 文件 java One One启动了
3.3 编译 单个有包结构的 java文件
//1. 在 com/gc/jar目录下 创建 Two.java 文件 package com.gc.jar; public class Two { public static void main(String[] args) { System.out.println("Two启动了"); } } //2. 执行编译命令,生成 .class 文件 javac com/gc/jar/Two.java 生成: Two.class //3. 运行 .class 文件 java com.gc.jar.Two Two启动了 注意: java 必须在 com上级目录中 执行
3.4 编译 多个java文件
//1. 创建 One.java Two.java 文件 public class One { public static void main(String[] args) { System.out.println("One启动了"); } } public class Two { public static void main(String[] args) { System.out.println("Two启动了"); } } //2. 执行编译命令,生成 .class 文件 javac *.java 生成: One.class Two.class //3. 运行 .class 文件 java One java Two One启动了 Two启动了
3.5 思考: 一个 java文件中 可以定义多少个class?
1. 没有个数限制 但是 一个 java文件中 只能定义一个 public类,且必须与文件名称相同 2. 思考: public的作用是什么? 访问范围限制: 被 public修饰的class,可以在 其他包被访问 没有被 public修饰的class,只能在本包内访问 示例: 1.创建 gc.java (定义多个 class) class One { public static void main(String[] args) { System.out.println("One启动了"); } } class Two { public static void main(String[] args) { System.out.println("Two启动了"); } } 2. 编译 javac gc.java 生成: One.class Two.class
4. 关于打包-jar
https://www.cnblogs.com/bajiaotai/p/16791446.html
5. 关于执行-java
5.1 关于 java命令
功能: Java解释器,运行指定的 class文件,并生成 java进程 语法: 方式1: 执行指定类 java [-options] class [args...] 方式2: 执行指定jar java [-options] -jar jarfile [args...] 参数: -cp|-classpath: path|zip|jar 指定 java运行时 从哪里去寻找 指定类的 .class文件 参数必须是: 目录、zip、jar 多个参数时: 用 :分割 默认参数为: 当前目录 -D<名称>=<值> 设置系统属性
5.2 classpath 是什么?
classpath 是 java运行时 告诉jvm从哪里取寻找要执行的 .class文件 在 idea环境中 就是 src/main/java 之后的相对路径 在 maven工程中 就是 target/classes 之后的相对路径 在 执行 java命令时 classpath 路径默认为 当前路径
配置环境变量:
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/usr/local/lib/antlr-4.0-complete.jar
5.3 案例1: 运行 指定class文件中的 class
java -cp /usr/local/lib Two 注意: /usr/local/lib 必须存在 Two.class
5.4 案例2: 运行 指定jar包中的 class
java -cp /usr/local/lib/gc.jar Two
5.5 案例3: 运行 指定jar
java -jar /usr/local/lib/gc.jar
注意: 这种运行方式 jar中的 MANIFEST.MF 必须配置了 Main-Class: One

浙公网安备 33010602011771号