Linux环境下安装与运行Java
一. Linux环境下安装Java环境——最最最简单粗暴的教程
- 插个眼做个笔记,后续再更
二. Linux下编译Java代码—javac和java命令的使用
2.1 编译单个java文件
- 建立工程目录
首先在项目目录项新建src
和build
两个文件夹,在src下新建一个HelloJava.java
文件
├── build
└── src
└── HelloJava.java
- 源文件
包package
是java
代码模块化的基本特点,因此我们从初学的时候就应该养成每个文件都建立包的好习惯。
建立带有package的java源代码内容如下,!!带package头很重要!!
package hello.world;
public class HelloJava {
public static void main(String args[]){
System.out.println("This is a Java Package compile");
System.out.println("Hello Java");
}
}
-
编译
javac -d ./build ./src/HelloJava.java
-
查看编译后的路径
tree
.
├── build
│ └── hello
│ └── world
│ └── HelloJava.class
└── src
└── HelloJava.java
- 执行
cd build && java hello.world.HelloJava
# result
This is a Java Package compile
Hello Java
2.2 编译多个Java文件,每个类都在一个包中
- 建立工程目录
├── build
└── src
├── Calculator.java
└── CommercialLoan.java
- CommercialLoan.java 相当于父类,被引用类,接口等文件
package com.taotaozi;
public class CommercialLoan {
public double equalLoanPay(int money, int year, double lpr) {
int P = money * 10000;
double R = lpr / 100 / 12;
int N = year * 12;
double k = P;
double numerator = (R * Math.pow((1 + R), N));
double denominator = Math.pow((1 + R), N) - 1;
return k * numerator / denominator;
}
}
- Calculator.java 相当于子类,函数入口等文件
package com.taotaozi;
import com.taotaozi.CommercialLoan;
public class Calculator {
public static void main(String args[]){
CommercialLoan loan = new CommercialLoan();
System.out.format("Your Loan is %f per month\n", loan.equalLoanPay(200, 30, 4.45));
}
}
- 编译
-cp 找包路径 -d 输出路径
- 问个问题,多个包路径用什么符号隔开????
javac -d ./build ./src/CommercialLoan.java
javac -cp ./build -d ./build ./src/Calculator.java
- 查看编译后的路径
tree
.
├── build
│ └── com
│ └── taotaozi
│ ├── Calculator.class
│ └── CommercialLoan.class
└── src
├── Calculator.java
└── CommercialLoan.java
- 执行
cd build && java com.taotaozi.Calculator
# result
Your Loan is 10074.375211 per month
2.3 不同包编译
- 建立工程目录
.
├── build
└── src
├── able
│ └── Wheel.java
└── main
└── Car.java
- Wheel.java 相当于父类,被引用类,接口等文件
package com.component.car;
public interface Wheel {
public void setColor(String color);
public String getColor();
}
- Car.java 相当于子类,函数入口等文件
package com.car;
import com.component.car.Wheel;
public class Car implements Wheel {
String wheelColor;
Car() {
this.wheelColor = "black";
}
public void setColor(String color) {
this.wheelColor = color;
}
public String getColor() {
return this.wheelColor;
}
public static void main(String args[]) {
Car mycar = new Car();
System.out.println(mycar.wheelColor);
mycar.setColor("red");
System.out.println("Change color: " + mycar.wheelColor);
}
}
- 编译
-cp 找包路径 -d 输出路径
- 问个问题,多个包路径用什么符号隔开????
javac -d ./build src/able/Wheel.java
javac -cp ./build -d ./build src/main/Car.java
- 查看编译后的路径
tree
.
├── build
│ └── com
│ ├── car
│ │ └── Car.class
│ └── component
│ └── car
│ └── Wheel.class
└── src
├── able
│ └── Wheel.java
└── main
└── Car.java
- 执行
cd build/ && java com.car.Car
# result
black
Change color: red