---
# System prepended metadata

title: 安裝Eclipse及Java 8流程
tags: [Work]

---

# 安裝Eclipse及Java 8流程
###### tags: `Work`

![](https://i.imgur.com/Ge4rRPs.png)



[TOC]
# 下載 Java 8
## 下載 Java 8 步驟
請下載 [Java 8](https://www.oracle.com/tw/java/technologies/javase/javase-jdk8-downloads.html) 。

> 請選 Windows/Mac 86 或 64 請看自己的電腦決定
> 我目前使用 jdk-8u291-windows-x64.exe [color=lightblue]

**Note:** 可能需要Oracle帳號，請自行申請一下。
**Note:** 環境變數會用到，所以請記得你的JDK Folder放在哪裡。

## 確認下載安裝是否成功
在Terminal (cmd) 底下，下以下command:
```=
java -version
```

如果成功會看到以下MSG:
>java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)[color=pink]


![](https://i.imgur.com/TW4ASOf.png)



# 下載 Lombok 
## Lombok 下載網址
請下載[Lombok 檔案](https://projectlombok.org/download) ，下載結束後請改檔案名為 "**lombok.jar**".

## Lombok 設定步驟
如果已經下載Eclipse的話:
1. 請把lombok檔案放報eclipse的檔案夾裡。
2. 用文字編輯器，打開eclipse.ini file，並加入以下行列在文檔的下方最。

```java=
//路徑每個人會有扁不太一樣，所以請自調
-javaagent:../Eclipse/lombok.jar
-vmargs -javaagent:lombok.jar
```

**eclipse.ini:**
![](https://i.imgur.com/MaKkDN6.png)


**lombok在Eclipse的位子:**
![](https://i.imgur.com/yb791qk.png)

**Note:** 
如果跑專案 **log**有問題，可能代表lombok沒設定。
如果有設定，請到Project Tab > Clean


# 下載 Apache Maven
前往 [Apache Maven 官方網頁](https://maven.apache.org/) 

![](https://i.imgur.com/zQTyoSh.png)

下載**apache-maven-3.6.3-bin ZIP** file.
![](https://i.imgur.com/5kbN0LQ.png)

**Note:** 環境變數會用到，所以請記得你的Maven Folder放在哪裡。

## 確認下載安裝是否成功
請 **設定環境變數** 過後再試試看。 

>使用者變數
>**Path**
>C:\Program Files\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin [color=orange]

>PS: 不知道哪裡設定環境變數的話，可以看這教學的 **設定環境變數** 的 Section 底下有圖片跟文字敘述。

**如何有成功呢?**
在Terminal (cmd) 底下，下以下command:
```=
mvn -version
```

如果成功會看到以下MSG:
>Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: C:\Program Files\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin\..
Java version: 1.8.0_281, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_281\jre
Default locale: zh_TW, platform encoding: MS950
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"[color=pink]

## 備註:
>如果**環境變數都設定好**了，可是**執行 mvn -version** 指令**沒有用**的話，**請重新開機**。 [color=red]

# 設定環境變數

## 打開控制台到環境變數位子
### 控制台在哪裡呢? 
1. 找不到可以再收尋位子找control，就會出現控制台項目。
1. 前往**系統及安全性**。
2. 前往**系統**。
3. 前往**進階系統設定**。
4. 在**進階底下**可以看到**環境變數**紐。


>**STEP 1**
![](https://i.imgur.com/EeqFB0A.png)
**STEP 2**
![](https://i.imgur.com/R2Lp5gi.png)
**STEP 3**
![](https://i.imgur.com/sunfN7A.png)
**STEP 4**
![](https://i.imgur.com/YjOhFPy.png)
**STEP 5**
![](https://i.imgur.com/SpVdJEo.png)[color=#a6e2eb]


## 加上新的環境變數
![](https://i.imgur.com/6qbRibh.png)

### 使用者變數
**Path**
C:\Program Files\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin

### 系統變數
**JAVA_HOME**
C:\Program Files\Java\jdk1.8.0_281

**CLASSPATH**
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

**Path**
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin


# 下載 Eclipse 
## 下載Eclipse Zip File 
前往 [Eclipse 官方下載網頁](https://www.eclipse.org/downloads/)
![](https://i.imgur.com/m3YmeW7.png)

在這裡頭前往 [Download Packages](https://www.eclipse.org/downloads/packages/)
![](https://i.imgur.com/rJbmAvp.png)

點擊 **Eclipse IDE for Java Developers**，會倒到別的網頁，在那**點擊下載(Download)**。

![](https://i.imgur.com/l91lvpT.png)

下載檔案為 **eclipse zip file**.

## 設定Installed JREs
### 打開Installed JREs項目
在Eclipse 開啟後:
1. 請到 **Window > Preferences**
2. 找一下 **Java > Installed JREs** 那邊需要**指向本地的JRE**，就像以下圖一樣。 (下面有加JRE的步驟)
**Note:** 如果原本就有的話，請刪除，再重新指向新的。


**Java/ Installed JRE:**
![](https://i.imgur.com/qX7zs8J.png)

### ADD new JRE
1. 確認是否是本地的JRE
2. Installed JREs 裡面**刪除原本的(如果非本地)**，**請按ADD紐**。
3. 會打開一個**JRE Type的Window**，裡頭選**Standard VM**。
4. 請選擇你 **jdk Folder 裡面的 jre folder** 為Directory。
5. 填選你要的名稱，並**按Finish**。
6. 最後按Apply 過後再Apply and Close

**Step 3~5 圖案對照:**
>**Step 3:**
![](https://i.imgur.com/TBN5PZl.png)
**Step 4:**
![](https://i.imgur.com/371Bxix.png)
**Step 5:**
![](https://i.imgur.com/d4UbSo4.png) [color=#2e84d5]

**Step Overview:**
>![](https://i.imgur.com/ifqTE0E.png) [color=#2e84d5]

### Aliyucs 
請從**Gitlab > maven >  core 3.0.6.jar**
```maven=
mvn install:install-file -Dfile=/换成本地路径/core-3.0.6.jar -DgroupId=com.aliyuncs.aliyun -DartifactId=core -Dversion=3.0.6 -Dpackaging=jar
```

## 設定 m2e 
### 取得 Eclipse 需要的 m2e Url 
首先開啟 [m2e Eclipse Url](https://www.eclipse.org/m2e/)。
![](https://i.imgur.com/WYKRps6.png)
進入以上圖的Url過後，請往下滑會看到m2e repository的url。請留下這網頁，並前往Eclipse 軟體。
![](https://i.imgur.com/zch7i1t.png)

**Note:** https://download.eclipse.org/technology/m2e/releases/latest/
(2021/04/15 如果沒有換還是這Link)

### 設定m2e Url在Eclipse
Eclipse開啟的情況下:
1. 請前往Help Tab 的 **Install New Software**。
2. 在Install Window，直接按Add。
3. 會請你填寫 name (匿名) 及 Location (這就是m2e的repository url)，並Add進去。
4. 勾選選單並且按Next。

**Step 1~5 圖案對照:**
>**Step 1:**
![](https://i.imgur.com/e8pa32w.png)
**Step 2:**
![](https://i.imgur.com/HqDOPF4.png)
**Step 3:**
![](https://i.imgur.com/gdVvbun.png)
**Step 4:**
![](https://i.imgur.com/5jtedHI.png)[color=#31dcbd]


# 如何確認Eclipse的Maven是否有在使用?
首先:
1. 先把Maven專案import進來。 
2. 對專案按右鍵，並且確認有Maven選項。


![](https://i.imgur.com/xJwjVSo.png)

**Note:** Maven裡的**Update Project**會是一個很常用的Option。

# 基本操作
## 加入多個專案
1. File > Open Project from file system 
1. 請選 Parent Folder，購選Working Set 再讓他跑起來
**Note:** 這會需要一些時間。你在右下角，應該會看到一個綠色Bar在跑。

**Step 1~2 圖案對照:**
>**Step 1:**
![](https://i.imgur.com/V5IP7BD.png)
**Step 2:**
![](https://i.imgur.com/BxK3MBU.png) [color=#cbd2ff]



## Maven Run as + Maven Build..操作
![](https://i.imgur.com/XkiMqUf.png)

1. 在專案上右鍵會看到 **Run As 選項**:
1. 建議打包時都要先 Maven Clean 
2. Maven Install
3. Maven Build...

### Maven Build.. > compile (編譯)
![](https://i.imgur.com/gZv64nQ.png)

### Maven Build.. > clean package (clean + 打包JAR)
![](https://i.imgur.com/bngDRwE.png)

**Note:** 
用過的**Maven Build.. 到時再Maven Build 可以看到**。
另外打包的檔案，一律都會在 **target folder** 底下。 如果不再target folder, 請看console裡的位子為主(上面會寫path)。

## 執行JAR
請到 Terminal (CMD) 裡去以下指令:
1. cd jarFolder
2. java -jar jarName.jar

## 基本架構
**pom.xml** 基本上釋放dependency的部份 (3rd party/外掛等)

**src/main/java** 基本上都是主要放 java files的目錄

**application-prod-properties** 及 **application.properties** 都是 設定server/spring datasource url(mysql 在這專案)/ spring datasource username/ spring dtasource password/ Dubbo 資料 等.

# 檔案尋找
在上方的Bar找 **Search**，並按下 **Quick Search**。
>![](https://i.imgur.com/bU8gDJR.png) [color=orange]

備註:
>請按 3 點那把**CASE SENSITIVE 拿掉**，避免難找東西。 另外要記得，只要是多出一個空格，Eclipse 就會找不到，所以注意不要多空格除非是你想要的。 [color=red]

## 專案找API (備註: 不一定符合每個專案)
1. 使用查詢找 "@RequestMapping " 找出一般的API 定義位子


**Step 1:**
使用 **@RequestMapping** 找出定義的API。 例如我們看到 **/listLiveInfo**，如圖的下方。

>**注意:**
要使用它會是 **http:/domain/live/listLiveInfo**。 在這專案的架構上，他會有一個CLASS為上層，這上層會有一個主要路徑，在這例子為 **live**。  [color=red]

>![](https://i.imgur.com/mEOVVXD.png)[color=orange]

**額外例子:**
>/qrcode/generate
rollball-tool > src/main/java > controller > QrcodeController [color=lightblue]

## 找出第三方API (備註: 不一定符合每個專案)
### **STEP 1**
專案第三方API (尤其是籃/足球數據) 查詢方式為:
查詢  **leisu.** (api url 顯示) /  **@Value** (找使用 api url 的class) 

**範例:**
用 "leisu." 找出 leisu call 的 "leisu.leagueListUrl" 在 constant-url-bbls-prod.properties 檔案裡 (basketballbasicdatatask > resources)
```Java===
//Example
leisu.leagueListUrl=http://xx.xx.com/api/sports/basketball/matchevent/list
```
### **STEP 2**
使用 leisu.leagueListUrl 找出宣告API的地方，在這範例為ConstantUrlBbLsProperties.class。
這時使用 getleagueListUrl  (get + 使用名稱)找 就可以找出使用這API 的位子。

>String params = "user="+userAccount+"&secret="+userSecret; [color=purple]
>
>// 1.请求球探接口
>ResultBean httpClientResult = HttpClientUtil.doGet(constantUrlBbLsProperties.getLeagueListUrl()+"?"+params); 

# 備註
## Eclipse 提示
Eclipse **很慢**，所以要對它有耐心。

# 問題
## 找不到宣告參數，卻可以使用? (Spring框架專案)
### 方法一
首先看一下是否有以下Import:
```Java=
import org.springframework.stereotype.Service;
```
有的話代表再用Spring框架的注入處理。

一定會想說如果有兩個Class同時繼承同個interface的話，專案會怎麼知道要用哪一個? 首先一定會要被住 **@Autowired** 另外在implement interface的檔案上會有寫 @Service("名稱") 這名稱就會是拿來當被注入的參數名稱。

可以參考以下 StackOverFlow:
https://stackoverflow.com/questions/17424140/spring-is-picking-an-interface-implementation-out-of-many-on-its-own/17424382

### 方法二
首先看一下是否有以下Import有沒有在implement interface的class上:

```java=
import org.apache.dubbo.config.annotation.Service;
```

有的話，這就是使用apache dubbo的注入。

主要會看到的標籤會是 @Reference=(version="x.x") 再注入的地方及 @Service=(version="x.x") 在繼承interface的Class上。 version 對應到就會知道要注入哪一個。

可以參考以下網站:
https://www.jianshu.com/p/e01ae2351dbc